【问题标题】:Is there a Java XML to JSON library to produce output JSON with no property where input XML has xsi:nil="true"是否有一个 Java XML 到 JSON 库来生成没有属性的输出 JSON,其中输入 XML 具有 xsi:nil="true"
【发布时间】:2018-04-26 09:25:27
【问题描述】:

是否有 Java XML 到 JSON 库来生成没有属性的输出 JSON,其中输入 XML 具有 xsi:nil="true"?

XML 输入示例:

<root>
  <ele1>Has content</ele2>
  <ele2 xsi:nil="true" />
</root>

预期的 JSON 输出

{
  "root":{
     "ele1":"Has content"
  }
}

我的输入是 XML 而不是 POJO。我想看看是否有一个图书馆可以避免例如使用 JAXB/Jackson。

使用 json.org,我目前得到例如:

{
  "root":{
     "ele1":"Has content",
     "ele2":[
        "xsi:nil":true
      ]
  }
}

我不希望 JSON 中有空值,但属性不存在。 IE。不是:

{
  "root":{
     "ele1":"Has content",
     "ele2":null
  }
}

谢谢,

【问题讨论】:

  • 您目前转换的热门吗?您尝试了上述哪些库?
  • 当前调用是 org.json.XML.toJSONObject。 (注意:我代表尚未提供替代方案的开发人员询问,我希望向他提供选项。我无法直接访问代码。)

标签: java json xml


【解决方案1】:

没有 XML 到 JSON 的转换库可以始终为您提供所需的内容。一般来说,我建议在进行 XML 到 JSON 的转换之前使用 XSLT 进行 XML 到 XML 的预转换 - 在这种情况下,预转换将消除 nilled 元素。

如果您想完全控制生成的 JSON,请尝试 XSLT 3.0 中的机制,您首先将 XML 转换为通用 &lt;map&gt;&lt;array&gt;&lt;string&gt;&lt;number&gt; 元素,然后按下按钮将这些转换为 JSON 语法。

【讨论】:

  • 谢谢。我喜欢这里的 XSLT 建议。这可能是一种非常简单的方法。
猜你喜欢
  • 2021-02-07
  • 2017-04-24
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多