我有这个很棒的 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 中有“产品”子级别,因为所有三行都是产品。这是我的 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"}]
最佳答案
使用方法调用
JsonConvert.SerializeXNode(x, Formatting.None, true);
这将省略根节点并且应该创建您期望的内容。
关于c# - 使用 C# 将 XDocument 或 XmlDocument 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26605493/