Convert xml file to json object using dom parser in java

后端 未结 2 1273
死守一世寂寞
死守一世寂寞 2021-01-28 09:13

Trying to convert any type of XML file to JSON object structure . Different xml files are having varied depths of elements and sub-elements. creation of arrays when elements wit

相关标签:
2条回答
  • 2021-01-28 10:00
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    /**
     *
     * @author nikunj.m
     */
    import java.io.File;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    
    public class xmlTojsonDom1 {
    
    public static void main(String[] args) {
        try {
            File file = new File("D:/Noname1.xml");
            DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            Document doc = dBuilder.parse(file);
            System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
            if (doc.hasChildNodes()) {
                JSONArray ffffd = printNote_1(doc.getChildNodes());
                System.out.println("ffffd ::::: " + ffffd);
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
    
    private static JSONArray printNote_1(NodeList nodeList) {
        JSONArray dataArr = new JSONArray();
        JSONObject dataObject = new JSONObject();
        for (int count = 0; count < nodeList.getLength(); count++) {
            Node tempNode = nodeList.item(count);
            if (tempNode.getNodeType() == Node.ELEMENT_NODE) {
                if (tempNode.hasChildNodes() && tempNode.getChildNodes().getLength() > 1) {
                    JSONArray temArr = printNote_1(tempNode.getChildNodes());
                    if (dataObject.containsKey(tempNode.getNodeName())) {
                        dataObject.getJSONArray(tempNode.getNodeName()).add(temArr.getJSONObject(0));
                    } else {
                        dataObject.put(tempNode.getNodeName(), temArr);
                    }
                } else {
                    dataObject.put(tempNode.getNodeName(), tempNode.getTextContent());
                }
            }
        }
        dataArr.add(dataObject);
        return dataArr;
    }
    

    }

    0 讨论(0)
  • 2021-01-28 10:00

    Please refere this

    XmlMapper xmlMapper = new XmlMapper();

    String xml= FileUtils.readFileToString(new File("test_4.xsd.xml"),Charset.defaultCharset());

    JsonNode node = xmlMapper.readTree(xml.getBytes());

    ObjectMapper jsonMapper = new ObjectMapper();

    String json = jsonMapper.writeValueAsString(node);

    System.out.println(json);

    0 讨论(0)
提交回复
热议问题