【发布时间】:2019-01-02 07:07:00
【问题描述】:
我在将 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"
}
]
}
}
请告诉我您对如何解决此问题的想法
【问题讨论】:
-
能否请您展示您将xml转换为json的代码?
-
您预期的 json 无效,属性不能复制
-
Json.NET 正在按文档说明工作。您期望 Json.NET 在 XML 到 JSON 转换期间创建重复的 JSON 属性名称,但它不会这样做。 documentation 声明,同一级别的多个同名节点组合成一个数组。 这正是您所看到的。此外,rfc 8259 声明,对象中的名称应该是唯一的。 所以您对重复名称的偏好几乎肯定是非典型的。
标签: c# json xml angular json.net