zoukankan      html  css  js  c++  java
  • -Json与Xml之间的转换

    Json.Net 支持 Json 与Xml之间的相互转换.

    转换规则:

     1.元素保持不变
     2.属性添加前缀@
     3.单个子文本结点直接作为元素结点的值,否则通过#text访问
     4.XML声明和处理指令以?为前缀
     5.字符数据(Character data)、注释、whitespace 和significate whitespace结点分别通过#cdata-section,#comment,#whitespace and #significate-whitespace 访问。
     6.同一级多个相同名字的结点作为一组,放到同一个集合中
     7.空元素为null

    using Newtonsoft.Json;

    测试:

    string xml = <?xml version=""1.0"" standalone=""no""?>
                                <root>
                                <person id=""1"">
                                <name>Alan</name>
                                <url>http://www.google.com</url>
                                </person>
                                <person id=""2"">
                                <name>Louis</name>
                                <url>http://www.yahoo.com</url>
                                </person>
                                Hello World
                                </root>";

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml);

               //XML to JSON
                string jsonText = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.Indented);
                Console.WriteLine(jsonText);

    输出结果:

    {
      "?xml": {
        "@version": "1.0",
        "@standalone": "no"
      },
      "root": {
        "person": [
          {
            "@id": "1",
            "name": "Alan",
            "url": "http://www.google.com"
          },
          {
            "@id": "2",
            "name": "Louis",
            "url": "http://www.yahoo.com"
          }
        ],
        "#text": "                             Hello World                             "
      }
    }

     

                //JSON to XML

                XmlDocument docJson = (XmlDocument)JsonConvert.DeserializeXmlNode(jsonText);
                Console.WriteLine(docJson.InnerXml);

     

    注:一个有效的XML必须只包含一个根元素,所以DeserializeXmlNode 方法参数接收的Json对象,只能包含一个根属性。

  • 相关阅读:
    魔兽争霸3 冰封王座 w3g文件如何打开
    魔兽争霸3怎么玩
    笔记本电脑 联想 Thinkpad E420 无法打开摄像头怎么办
    笔记本能连上WIFI网络,但是无法上网怎么办
    佳能打印机 打不出黑色怎么办
    佳能打印机 出现5100错误怎么办
    UG如何把语言改成中文,UG如何把界面语言改成中文
    [Spring] Spring Data JPA
    基于控制权限和登录验证跳转的django登录界面的实现
    windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤
  • 原文地址:https://www.cnblogs.com/mili3/p/3217497.html
Copyright © 2011-2022 走看看