用java写一个对document对象进行解析为json内容的Util文件
时间: 2023-05-21 22:01:14 浏览: 154
好的,以下是一个简单的Java代码示例,可以将Document对象解析为JSON格式的内容:
import org.json.JSONObject;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DocumentToJsonUtil {
public static JSONObject convertDocumentToJson(Document doc) {
JSONObject json = new JSONObject();
Element root = doc.getDocumentElement();
if (root != null) {
json.put(root.getNodeName(), elementToJson(root));
}
return json;
}
private static JSONObject elementToJson(Element element) {
JSONObject json = new JSONObject();
NodeList children = element.getChildNodes();
if (children.getLength() == 0 && element.getTextContent() != null) {
json.put("value", element.getTextContent());
} else {
for (int i = 0; i < children.getLength(); i++) {
Node child = children.item(i);
if (child instanceof Element) {
Element childElement = (Element) child;
if (json.has(childElement.getNodeName())) {
Object obj = json.get(childElement.getNodeName());
if (obj instanceof JSONObject) {
JSONObject childJson = (JSONObject) obj;
childJson.append(childElement.getNodeName(), elementToJson(childElement));
} else {
json.put(childElement.getNodeName(), new JSONObject().put(childElement.getNodeName(), elementToJson(childElement)));
}
} else {
json.put(childElement.getNodeName(), elementToJson(childElement));
}
}
}
}
return json;
}
}
请注意,这只是一个简单的示例,可能无法处理所有情况。如果您需要更复杂的解析器,请考虑使用现有的库,如Jackson或Gson。