{"users": {
"report": {
"sub": "eng",
"score": 30
},
"user": {
"name": "test1",
"age": 20
}
}}
我的代码是:
包项目示例;
import org.json.JSONObject; import org.json.XML;
公共类 Xml2Json {
private static final int PRETTY_PRINT_INDENT_FACTOR = 4;
public static void main(String[] args) {
String xmlString = "<users><user name=test1 age=20></user><report sub=eng score=30></report></users>";
JSONObject jsonObject = XML.toJSONObject(xmlString);
system.out.println(jsonObject(;
这是我使用 Java 将 XML 解析为 JSON 时得到的输出。 现在我想从此输出中删除年龄= 20。
谁能帮我解决这个问题? 提前感谢!
考虑使用 XSLT 预处理 XML,或类似地对 JSON 进行后处理。
使用 XSLT 3.0,您可以将结构转换和 XML 到 JSON 转换合并到单个操作中。
例如(假设 XML 的结构是固定的,只有值会发生变化(:
<xsl:transform version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="json"/>
<xsl:template match="/">
<xsl:sequence select='
map{"users": map {
"report": map {
"sub": string(/users/report/@sub),
"score": string(/users/report/@score)
},
"user": map {
"name": string(/users/user/@name)
}
}}'/>
</xsl:template>
</xsl:transform>
与使用标准转换实用程序(如XML.toJSONObject
(相比,此方法的优势在于您可以完全控制生成的 JSON。
如果您不想使用 XSLT,这也可以使用:
String xmlString =
"<users><user name=test1 age=20></user><report sub=eng score=30></report></users>";
JSONObject jsonObject = XML.toJSONObject(xmlString);
jsonObject.getJSONObject("users").getJSONObject("user").remove("age");
System.out.println(jsonObject);
阅读您的最后一条评论。 你几乎是对的。只是顺序错了。您正在从顶部遍历 JSON 树。