首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用java从xml解析时从json输出中删除元素或属性?

如何在使用java从xml解析时从json输出中删除元素或属性?
EN

Stack Overflow用户
提问于 2020-07-02 11:06:50
回答 2查看 533关注 0票数 2
代码语言:javascript
运行
复制
{"users": {
    "report": {
        "sub": "eng",
        "score": 30
    },
    "user": {
        "name": "test1",
        "age": 20
    }
}}

我的代码是:

包装project.example;

进口org.json.JSONObject;进口org.json.XML;

公共类Xml2Json {

代码语言:javascript
运行
复制
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。

有人能帮我解决这个问题吗?提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-04 18:03:58

如果您不想使用XSLT,也可以这样做:

代码语言:javascript
运行
复制
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树。

票数 1
EN

Stack Overflow用户

发布于 2020-07-02 14:00:16

考虑使用XSLT对XML进行预处理,或者类似地对JSON进行后处理。

使用XSLT3.0,您可以将结构转换和XML到JSON转换组合成一个操作。

例如(假设XML的结构是固定的,并且只有值不同):

代码语言:javascript
运行
复制
<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。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62694976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档