我有這樣的XML這是偉大的:的XDocument或XmlDocument的,以JSON用C#
<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"}]
正如你可能知道,那'JSON'輸出表示'XML'輸入。要改變它,你「打破」了它。 – flindeberg 2014-10-28 11:08:33
你試過調用'JsonConvert.SerializeXNode(x,Formatting.None,true)'嗎?應該省略根節點。 – Jehof 2014-10-28 11:16:14
哈哈,翻轉布爾正是我所需要的!謝謝@Jehof – 2014-10-28 11:23:09