色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

dom4j解析xml返回json

阮建安2年前9瀏覽0評論

在很多開發場景中,我們需要把XML格式的數據轉換成JSON格式的數據。DOM4J是一個強大的XML解析工具,可以方便地將XML格式的數據解析成Java對象或者JSON格式的數據。

下面是一個基于DOM4J解析XML并返回JSON的簡單示例:

public static JSONObject xml2Json(String xml) throws DocumentException {
Document doc = DocumentHelper.parseText(xml);
JSONObject obj = new JSONObject();
if (doc != null) {
Element root = doc.getRootElement();
element2Json(root, obj);//將XML轉換為JSON對象
}
return obj;
}
private static void element2Json(Element el, JSONObject obj) {
ListlistAttr = el.attributes();//獲取當前節點的所有屬性
for (Attribute attr : listAttr) {
obj.put(attr.getName(), attr.getValue());//將屬性加入JSON對象中
}
Listelements = el.elements();//獲取當前節點的所有子節點
if (elements.isEmpty() && StringUtils.isNotEmpty(el.getTextTrim())) {
obj.put(el.getName(), el.getText());//當前節點沒有子節點,將其作為屬性加入JSON對象中
} else {
for (Element e : elements) {
JSONObject jsonObject = new JSONObject();
element2Json(e, jsonObject);//遞歸解析XML子節點
Object value = obj.get(e.getName());
if (value != null) {
JSONArray array;
if (value instanceof JSONObject) {
array = new JSONArray();
array.add(value);
obj.put(e.getName(), array);
} else if (value instanceof JSONArray) {
array = (JSONArray) value;
array.add(jsonObject);
}
} else {
obj.put(e.getName(), jsonObject);
}
}
}
}

在上述代碼中,我們定義了一個xml2Json方法,它的作用是把XML格式的字符串轉換成JSON格式的對象。該方法首先使用DOM4J把XML字符串解析成Document對象,然后遍歷Document對象的節點,將節點轉換成對應的JSON對象并添加到父JSON對象中。

通過本文的介紹,相信大家已經明白了如何使用DOM4J解析XML并返回JSON數據。如果您有更好的實現方式,請在評論中分享。