【发布时间】:2015-06-19 06:50:25
【问题描述】:
我将以下 JSON 转换为 XML:
{
"root": {
"object": [{
"Name": "Cust1",
"addresses": [
[{
"AddressLine1": "Address1",
"AddressLine2": "Address2"
}],
[{
"AddressLine1": "Address3",
"AddressLine2": "Address4"
}]
]
}, {
"Name": "Cust2",
"addresses": [
[{
"AddressLine1": "Address1_2",
"AddressLine2": "Address2_2"
}],
[{
"AddressLine1": "Address3_2",
"AddressLine2": "Address4_2"
}]
]
}]
}
}
我使用以下代码将其转换为XML(在JSON转换后已手动添加了根元素):
XmlDocument xmlDoc = JsonConvert.DeserializeXmlNode(rootJson);
输出的XML如下:
<root>
<object>
<Name>Cust1</Name>
<addresses>
<addresses>
<AddressLine1>Address1</AddressLine1>
<AddressLine2>Address2</AddressLine2>
</addresses>
</addresses>
<addresses>
<addresses>
<AddressLine1>Address3</AddressLine1>
<AddressLine2>Address4</AddressLine2>
</addresses>
</addresses>
</object>
<object>
<Name>Cust2</Name>
<addresses>
<addresses>
<AddressLine1>Address1_2</AddressLine1>
<AddressLine2>Address2_2</AddressLine2>
</addresses>
</addresses>
<addresses>
<addresses>
<AddressLine1>Address3_2</AddressLine1>
<AddressLine2>Address4_2</AddressLine2>
</addresses>
</addresses>
</object>
问题出在<addresses> 标签后面跟着另一个<addresses> 标签。
【问题讨论】:
-
似乎还有一层额外的 JSON 数组嵌套——
[[{ "AddressLine1": "Address1", "AddressLine2": "Address2"}]]而不是[{ "AddressLine1": "Address1", "AddressLine2": "Address2"}]。这可能会导致额外级别的 XML 嵌套。
标签: json xml json.net deserialization