如何从XML在C#解析为JSON时避免了根元素 [英] How to avoid the ROOT Element when parsing from XML to JSON in C#
本文介绍了如何从XML在C#解析为JSON时避免了根元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个XML使用JSON.NET的JSON
XmlDocument的docPerson =新的XmlDocument();
docPerson.LoadXml(xmlPerson); // xmlPerson是从上面的XML
JObject personDefinition = JObject.Parse(JsonConvert.SerializeObject(docPerson));
Tasks.personDefinition = personDefinition [personDefinition];
输出JSON
人:{人:[{PERSONID:1,名字:名1,姓氏:lastName1},{ PERSONID:3,名字:名称2,姓氏:lastName2}]}
我不需要外部的人,只需要下面的JSON
必需的JSON
<$p$p><$c$c>"person":[{"personId":"1","firstName":"1","lastName":"Weight"},{"personId":"3","firstName":"4","lastName":"Pulse牛}]}
我使用的方法。首先但是它抛出一个错误都试过了。任何人都可以提出如何从输出JSON剥离根
解决方案
JSON.Net有一个 SerializeXmlNode()
方法,可以做的正是你想要的。简单地真
传递给 omitRootObject
参数。
注意:
字符串xmlPerson = @"<PersonDefinition><Person><name>Nicolas</name><age>22</age></Person><Person><name>Pankaj</name><age>25</age></Person></PersonDefinition>";
XmlDocument的docPerson =新的XmlDocument();
docPerson.LoadXml(xmlPerson);
JSON字符串= JsonConvert.SerializeXmlNode(docPerson,Formatting.None,真正的);
Console.WriteLine(JSON);
输出:
{人:[{名:尼古拉,时代:22},{名:潘卡,时代: 25}]}
I am trying to create a JSON from an xml using JSON.NET
XmlDocument docPerson = new XmlDocument();
docPerson.LoadXml(xmlPerson); //xmlPerson is the xml from above
JObject personDefinition = JObject.Parse(JsonConvert.SerializeObject(docPerson));
Tasks.personDefinition = personDefinition["personDefinition"];
OUTPUT JSON
"person":{"person":[{"personId":"1","firstName":"Name1","lastName":"lastName1"}, {"personId":"3","firstName":"Name2","lastName":"lastName2"}]}
I don't need the outer person and just need the following json
REQUIRED JSON
"person":[{"personId":"1","firstName":"1","lastName":"Weight"},{"personId":"3","firstName":"4","lastName":"Pulse Ox"}]}
I have tried using the .first method however it is throwing an error. Can anyone suggest on how to strip the root from the output json
解决方案
JSON.Net has a SerializeXmlNode()
method that can do exactly what you want. Simply pass true
to the omitRootObject
parameter.
Observe:
string xmlPerson = @"<PersonDefinition><Person><name>Nicolas</name><age>22</age></Person><Person><name>Pankaj</name><age>25</age></Person></PersonDefinition>";
XmlDocument docPerson = new XmlDocument();
docPerson.LoadXml(xmlPerson);
string json = JsonConvert.SerializeXmlNode(docPerson, Formatting.None, true);
Console.WriteLine(json);
Output:
{"Person":[{"name":"Nicolas","age":"22"},{"name":"Pankaj","age":"25"}]}
这篇关于如何从XML在C#解析为JSON时避免了根元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文