我有一个JSON字符串的XML表示形式,其中包含一个数组,并且该数组包含一个与该数组名称相同的子节点。当我调用JsonConvert.SerializeXmlNode()方法将该XML表示形式转换为JSON字符串时,它将删除与数组同名的内部子节点。
例如,我具有以下JSON对象的XML表示形式:
<location xmlns:json="http://james.newtonking.com/projects/json" json:Array="true">
<location>
<name>Name of location.location 1</name>
</location>
</location>
当我使用此XML调用JsonConvert.SerializeXmlNode()时,生成的JSON字符串将删除导致此结果的内部元素:
"location": [
{
"name": "Name of location.location 1"
}
]
但是,我希望得到保留内部元素的JSON字符串:
"location": [
{
"location": {
"name": "Name of location.location 1"
}
}
]
以下是一些有关如何重现此问题的示例代码:
XmlDocument doc = new XmlDocument();
doc.LoadXml("<location xmlns:json=\"http://james.newtonking.com/projects/json\" json:Array=\"true\"><location><name> Name of location.location 1</name></location></location>");
string jsonString = JsonConvert.SerializeXmlNode(doc);
是否可以在JSON.NET中更改此行为或以其他方式解决此问题?我无法更改由第三方定义的JSON / XML的结构。