1. 程式人生 > >XML to JSON

XML to JSON

xml to json ,依賴:fastjson、dom4j

private JSONObject readExtract(String file){
        SAXReader reader = new SAXReader();
        Document document = null;
        try {
            document = reader.read(new File(file));
        } catch (DocumentException e) {
            logger.error("讀取檔案【"
+file+"】出錯"); e.printStackTrace(); } Element root = document.getRootElement(); Element root = document.getRootElement(); // System.out.println(parse(root)); // 列印JSON return (JSONObject) parse(root); } public static Object parse(Element root) { List
<Element> elements = root.elements(); List<String> list=new ArrayList<String>();//儲存需要做成陣列的elemenet Set<String> set=new HashSet<String>(); //檢視是否需要做成列表 elements.forEach(e->{ if(set.contains(e.getName())){ list.
add(e.getName()); }else{ set.add(e.getName()); } }); List<Attribute> attributes=root.attributes(); JSONObject json=new JSONObject(true); if(elements.size()==0){ if(attributes.size()==0){ return root.getData(); }else{ json.put("#text", root.getData()); attributes.forEach(e->{ json.put(e.getName(),e.getData()); }); } }else{ elements.forEach(e->{ if(list.contains(e.getName())){ if(json.containsKey(e.getName())){ ((List) json.get(e.getName())).add(parse(e)); }else{ List<Object> temp=new ArrayList<Object>(); temp.add(parse(e)); json.put(e.getName(), temp); } }else{ json.put(e.getName(), parse(e)); } }); attributes.forEach(e->{ json.put(e.getName(),e.getData()); }); } return json; }