【发布时间】:2017-09-16 20:22:16
【问题描述】:
我正在使用 JSON.NET 将一些 XML 转换为 JSON。
我的 XML 如下所示:
<Root>
<Product>
<Name />
<Id />
</Product>
<Product>
<Name />
<Id />
</Product>
</Root>
我正在使用这种方法转换 xml:
private string ConvertToJson(string xml)
{
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.LoadXml(xml);
var JsonString = JsonConvert.SerializeXmlNode(XmlDoc);
return JsonString;
}
只要有多个产品,这都可以正常工作,JSON.NET 将创建一个 JSON 数组。 但是,如果只有一种产品 JSON.NET 不会创建 JSON 数组,但我需要它。
有什么方法可以强制它创建一个 JSON 数组?
【问题讨论】:
-
这是专门为
XmlDocument量身定制的答案:JSON.Net Xml Serialization misunderstands arrays。 -
我找到了更好的答案,但由于已关闭,我将在这里回答!将这些属性添加到您的 XML 节点: json:Array="true" xmlns:json="james.newtonking.com/projects/json" 如果您从 Json 转换生成 xml,您可以使用方法 JsonConvert.DeserializeXmlNode(json, "RootName", true) ;其中第三个参数是“写入数组属性”