xml 與 json 在 Newtonsoft 中的相互轉換
阿新 • • 發佈:2018-12-13
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文件的資訊,也可以進行資料的驗證。