• -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对象,只能包含一个根属性。

  • 相关阅读:
    void类型和void *指针类型(网上摘抄总结)【转】
    微信小程序中的canvas基础应用
    Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试
    git使用教程(详细)
    Vue下载依赖遇到的一些bug
    原生Javascript客户端表单验证
    ASP MVC 后台控制器弹出框提示
    网页URLJs传值传值传值传值传值问题
    从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑
    弹出提示框,在跳转
  • 原文地址:https://www.cnblogs.com/mili3/p/3217497.html
Copyright © 2020-2023  润新知