我正在使用 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 数组吗?
如果您事先知道 XML 模式,则可以通过附加强制数组生成json:Array="true"
到要转换为数组的节点
static string convertToJson(string what)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(what);
var products = doc.GetElementsByTagName("Product");
if (products.Count == 1)
{
var attribute = doc.CreateAttribute("json", "Array", "http://james.newtonking.com/projects/json");
attribute.InnerText = "true";
var node = products.Item(0) as XmlElement;
node.Attributes.Append(attribute);
}
string json = JsonConvert.SerializeXmlNode(doc);
return json;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)