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文档的信息,也可以进行数据的验证。