如何从XML在C#解析为JSON时避免了根元素 [英] How to avoid the ROOT Element when parsing from XML to JSON in C#

查看:778
本文介绍了如何从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆