xml 与 json 在 Newtonsoft 中的相互转换

1.数据格式

我们平时经常用到的两种数据格式就是 xml 与 json。这两种格式的转换也变成了一个需要了解的操作。

2. xml

XML(Extensible Markup Language)是一种用来编码文档的标记语言,人和机器都能够 快速理解XML文档的含义。它的其中一个目标就是能在互联网上广泛应用,现在XML已经 被广泛地应用在各种应用、WEB服务和网站中。

3.Json

JSON(JavaScript Object Notation)是一种轻量级的数据格式,它以”name / value”的格式来传输数据对象,JSON的目的就是为了能替代XML。

4. 相互转换

现在我们用 Newtonsoft 来 实现一个闭环的转换 object ——> json ——> xml ——>json——> object

           var user = new Dictionary<string, object>
            {
                {"CompanyName","Epoint" },
                {"UserName","Ellis" },
                {"Address",new Dictionary<string,string>
                          {
                             {"Country","China"},
                             {"Province","JiangSu"},
                             {"City","SuZhou" }
                          }
                },
                {"PhoneNumber",new object[]
                          {
                              new Dictionary<string,string>
                              {
                                  {"Type","Phone" },
                                  {"Number","0512-58972850" }
                              },
                              new Dictionary<string,string>
                              {
                                  {"Type","Fax" },
                                  {"Number","0512-58975860" }
                              }
                          }
                }
            };

            //object 转 json
            string json = JsonConvert.SerializeObject(user);

            //json 转xml 
            string xml = JsonConvert.DeserializeXNode(json, "Root", true).ToString();

            //xml 转json
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);
            string jsontext = JsonConvert.SerializeXmlNode(doc);

            //json转object
            dynamic anotnerUser = JsonConvert.DeserializeObject<dynamic>(jsontext);
            string anotherJson = JsonConvert.SerializeObject(anotnerUser);

5.各自特点

从上面的两个例子中我们可以看到,由于合理地利用了代码缩进和空格,JSON比XML可读性更强一些,另外,JSON没有利用全标记的结构,所以代码看起来更加紧凑,占用的空间也少。另一方面,XML依然被开发者广泛地使用着,XML也有很多自己的优势,比如:XML有更多的文档和开发工具,另外一个比JSON更大的优势是XML有一个 XML schema 来描述XML结构化信息,它能够详细描述XML文档的信息,也可以进行数据的验证。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值