I have this XML which is great:
<Products>
<Product ProductCode="C1010" CategoryName="Coins" />
<Product ProductCode="C1012" CategoryName="Coins" />
<Product ProductCode="C1013" CategoryName="Coins" />
</Products>
but it outputs to this JSON:
{"Products":{"Product":[{"@ProductCode":"C1010","@CategoryName":"Coins"},
{"@ProductCode":"C1012","@CategoryName":"Coins"},
{"@ProductCode":"C1013","@CategoryName":"Coins"}]}}
I would like no 'Product' sublevel in my json because all three lines are a product. This is my C# code:
//x is an XDocument.
JsonConvert.SerializeXNode(x, Formatting.None, false)
//JsonConvert.SerializeXNode(x); //I also tried without the formatting and the boolean.
When I 'convert' an XDocument to XmlDocument and use:
var xmlDocument = new System.Xml.XmlDocument();
using (var xmlReader = x.CreateReader())
{
xmlDocument.Load(xmlReader);
}
JsonConvert.SerializeXmNode(xmlDocument);
It gives me exactly the same output. So how can I modify my JSON parsing such that I have a simple list of products. I prefer the cleanest solution.
To be perhaps a bit more clear, I'd something like this as output:
[{"@ProductCode":"C1010","@CategoryName":"Coins"},
{"@ProductCode":"C1012","@CategoryName":"Coins"},
{"@ProductCode":"C1013","@CategoryName":"Coins"}]
Use the method call
this will omit the root node and should create what you expect.
try this
Instread of using xml writer or con version Just read from the original xml file an write in a new file use file stream writer.
basically you would be: