需求:有的时候我们需要获取一些xml格式的内容,比如:<RTN_CODE>0</RTN_CODE><RTN_MSG>45646</RTN_MSG>
获取<RTN_CODE></RTN_CODE>标签的内容,所以我需要将其拆解成json格式
代码如下:
public static String xml2JSON(String xml) {
com.alibaba.fastjson.JSONObject obj = new com.alibaba.fastjson.JSONObject();
try {
InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8"));
SAXBuilder sb = new SAXBuilder();
org.jdom.Document doc = sb.build(is);
org.jdom.Element root = doc.getRootElement();
obj.put(root.getName(), iterateElement(root));
return obj.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private static Map iterateElement(org.jdom.Element element) {
List jiedian = element.getChildren();
org.jdom.Element et = null;
Map obj = new HashMap();
List list = null;
for (int i = 0; i < jiedian.size(); i++) {
list = new LinkedList();
et = (org.jdom.Element) jiedian.get(i);
if (et.getTextTrim().equals("")) {
if (et.getChildren().size() == 0)
continue;
if (obj.containsKey(et.getName())) {
list = (List) obj.get(et.getName());
}
list.add(iterateElement(et));
obj.put(et.getName(), list);
} else {
if (obj.containsKey(et.getName())) {
list = (List) obj.get(et.getName());
}
list.add(et.getTextTrim());
obj.put(et.getName(), list);
}
}
return obj;
}
//需要导import org.jdom这个maven或者jar