我有一个很棒的XML:
<Products>
<Product ProductCode="C1010" CategoryName="Coins" />
<Product ProductCode="C1012" CategoryName="Coins" />
<Product ProductCode="C1013" CategoryName="Coins" />
</Products>
但它输出的是这个JSON:
{"Products":{"Product":[{"@ProductCode":"C1010","@CategoryName":"Coins"},
{"@ProductCode":"C1012","@CategoryName":"Coins"},
{"@ProductCode":"C1013","@CategoryName":"Coins"}]}}
我希望我的JSON中没有'Product'子级,因为这三行都是一个产品。这是我的C#代码:
//x is an XDocument.
JsonConvert.SerializeXNode(x, Formatting.None, false)
//JsonConvert.SerializeXNode(x); //I also tried without the formatting and the boolean.
当我将XDocument转换为XmlDocument并使用以下代码时:
var xmlDocument = new System.Xml.XmlDocument();
using (var xmlReader = x.CreateReader())
{
xmlDocument.Load(xmlReader);
}
JsonConvert.SerializeXmNode(xmlDocument);
它给我完全相同的输出。那么我如何修改我的JSON解析以获得一个简单的产品列表?我更喜欢最简单的解决方案。
为了更清楚,我希望输出如下所示:
[{"@ProductCode":"C1010","@CategoryName":"Coins"},
{"@ProductCode":"C1012","@CategoryName":"Coins"},
{"@ProductCode":"C1013","@CategoryName":"Coins"}]
JSON
输出代表着XML
输入。要更改它,您需要"打破"它。 - flindebergJsonConvert.SerializeXNode(x, Formatting.None, true)
吗?那个应该可以省略根节点。 - Jehof