欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java xml轉成json格式

吉茹定1年前7瀏覽0評論

Java語言中,XML和JSON都是常用的數據交換格式。XML格式相對來說較重,而JSON格式則比較輕量級,且在移動設備或者網絡傳輸中更為實用。對于Java開發者,需要將XML文件轉換成JSON格式,可以使用以下方法:

public static String xmlToJson(String xml) {
JSONObject jsonObj = new JSONObject();
try {
//將XML格式的字符串轉換成DOM對象
Document d = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(new InputSource(new StringReader(xml)));
//將根節點作為JSON對象
jsonObj.put(d.getDocumentElement().getNodeName(), xmlToJsonHelper(d.getDocumentElement()));
} catch (Exception e) {
e.printStackTrace();
}
return jsonObj.toString();
}
private static JSONObject xmlToJsonHelper(Node node) {
JSONObject obj = new JSONObject();
//如果是節點,將節點的子節點作為JSON對象
if (node.hasChildNodes()) {
NodeList nl = node.getChildNodes();
for (int i = 0; i< nl.getLength(); i++) {
Node childNode = nl.item(i);
//如果是文本節點,將文本節點的內容作為JSON的值
if (childNode.getNodeType() == Node.TEXT_NODE) {
obj.put("#text", childNode.getTextContent());
} else {
if (obj.has(childNode.getNodeName())) {
if (!(obj.get(childNode.getNodeName()) instanceof JSONArray)) {
JSONArray jsonArray = new JSONArray();
jsonArray.put(obj.get(childNode.getNodeName()));
obj.put(childNode.getNodeName(), jsonArray);
}
((JSONArray) obj.get(childNode.getNodeName())).put(xmlToJsonHelper(childNode));
} else {
obj.put(childNode.getNodeName(), xmlToJsonHelper(childNode));
}
}
}
}
//處理屬性節點
if (node.getAttributes() != null) {
NamedNodeMap nnm = node.getAttributes();
for (int i = 0; i< nnm.getLength(); i++) {
Node attr = nnm.item(i);
obj.put("@" + attr.getNodeName(), attr.getNodeValue());
}
}
return obj;
}

上面的代碼中使用了JSONObject和JSONArray類,它們可以很方便的轉換成JSON格式的字符串。此外,代碼中的方法也使用了遞歸,便于處理XML的嵌套節點。

使用上述方法可以將XML格式的字符串轉換成JSON格式的字符串,具有實用性和可行性。當然,對于比較復雜的XML文件,還需要根據具體情況做出相應的修改。