我正在寻找一种在Java中将XML转换为JSON的方法,使得子节点总是被转换为数组。 在Node.js中有库XmlToJs。
用例是指我有如下XML:
XML:
<A>
<B>
<C>data</C>
</B>
<B>
<C>data1</C>
<C>data2</C>
</B>
</A>
org.json转化的JSON:
{
"A": {
"B": [{
"C": "data"
}, {
"C": ["data1", "data2"]
}]
}
}
我希望转换成产量:
{
"A": {
"B": [{
"C": ["data"]
}, {
"C": ["data1", "data2"]
}]
}
}
答案 0 :(得分:1)
您可以尝试使用underscore-java库和静态方法U.xmlToJson(xml)
。有一个特殊的属性array="true"
强制元素为数组。我是该项目的维护者。
<A>
<B>
<C array="true">data</C>
</B>
<B>
<C>data1</C>
<C>data2</C>
</B>
</A>
输出:
{
"A": {
"B": [
{
"C": [
"data"
]
},
{
"C": [
"data1",
"data2"
]
}
]
},
"#omit-xml-declaration": "yes"
}
答案 1 :(得分:0)
以上可以完成,但可能不直接,即XML - &gt; JSON,一种方法是拥有数据模型的中间对象表示,然后是XML - &gt;数据模型 - &gt; JSON。 XML-&gt;数据模型可以通过所需结构中的JAXB提供程序实现,一旦数据在模型中,您可以将其序列化为JSON
答案 2 :(得分:0)
您可以使用Jackson XML执行此操作。这是一篇博文,解释了该做什么https://dzone.com/articles/solving-the-xml-problem-with-jackson