{"users": {
"report": {
"sub": "eng",
"score": 30
},
"user": {
"name": "test1",
"age": 20
}
}}我的代码是:
包装project.example;
进口org.json.JSONObject;进口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时得到的输出。现在,我想从这个输出中删除age=20。
有人能帮我解决这个问题吗?提前感谢!
发布于 2020-07-04 18:03:58
如果您不想使用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树。
发布于 2020-07-02 14:00:16
考虑使用XSLT对XML进行预处理,或者类似地对JSON进行后处理。
使用XSLT3.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。
https://stackoverflow.com/questions/62694976
复制相似问题