我在将XML转换为JSON时遇到问题
我的输入xml是
<Message>
<Sequence id="S">
<Tag id="T1"></Tag>
<Sequence id="S1">
<Tag id="T2"></Tag>
</Sequence>
<Tag id="T3"></Tag>
</Sequence>
</Message>
我正在使用NewtonSoft JsonConvert将其转换为Json
转换后的Json就是这样,所有名称为'Tag'的元素都被分组到一个数组中,它们应该被分组为处于同一级别的多个单独的'Tag'数组
"Message": {
"Sequence": {
"@id": "S",
"Tag": [
{
"@id": "T1"
},
{
"@id": "T3"
}
],
"Sequence": {
"@id": "S1",
"Tag": {
"@id": "T2"
}
}
}
}
我希望转换是
"Message": {
"Sequence": {
"@id": "S",
"Tag": [
{
"@id": "T1"
}
],
"Sequence": {
"@id": "S1",
"Tag": {
"@id": "T2"
}
},
"Tag": [
{
"@id": "T3"
}
]
}
}
请让我知道您对如何解决此问题的想法
答案 0 :(得分:2)
XML
和JSON
的结果令人困惑。
但是如果我们分析它们,将会很清楚地解释结果:
这是您的XML层次结构,每个“级别”都有其自己的颜色:
<Message>
的{{1}}子对象(<Sequence>
)拥有2个S
对象-它们是2个(2 =多个..)对象,它们都是
“ type” -<Tag>
-这就是为什么您将在<Tag>
中获得一个数组的原因
结果。
在您的JSON
子女中,您有一个嵌套的<Sequence>
对象,
该对象是相对于第一个<Sequence>
对象的子对象。
IF 这两个中的两个,其中<Sequence>
和<Message>
结果的两个孩子也将是它们的数组(JSON
)。
,但在这种情况下,"Sequence": [...],
是相对于S1
的孙子女,而相对于<message>
是其子女。
现在,返回第二个S
对象-它只有一个 <Sequence>
(<tag>
),这就是为什么它不在数组内并且可以看到它被嵌套的原因
到第一个T2
对象(<Sequence>
):
您可以在XML to JSON converter的CodVerter.com中更清楚地看到它 并验证JSON结果+在JSON Validator tool中使其更具可读性。
这是JSON结果(从CodVerter的XML到JSON工具):