資料格式之戰:JSON vs XML
本文由碼農網翻譯,轉載請務必在正文中註明出處
在比較JSON和XML之前,我們先來上一堂關於資料格式的簡要歷史(更準確的說,是關於XML的始祖):
- 早在1970年,IBM開發了一種叫Generalized Markup Language的標記語言,簡稱GML,它主要是為指令碼語言定義的一組巨集。
- 1986年,基於GML開發的另一種標記語言Standard Generalized Markup Language(簡稱SGML)誕生,併成為了ISO標準,接著在1998年,SGML又被重新定義為XML。
然而另一方面,JSON是Douglas Crockford在2001年開始推廣使用的資料格式,在2005年-2006年正式成為主流的資料格式,雅虎和谷歌就在那時候開始廣泛地使用JSON格式。
兩者的定義
XML(Extensible Markup Language)是一種用來編碼文件的標記語言,人和機器都能夠快速理解XML文件的含義。它的其中一個目標就是能在網際網路上廣泛應用,現在XML已經被廣泛地應用在各種應用、WEB服務和網站中。
JSON(JavaScript Object Notation)是一種輕量級的資料格式,它以”name / value”的格式來傳輸資料物件,JSON的目的就是為了能替代XML,現在也有很多程式語言支援JSON格式了。
從語法的角度看,兩者的區別還是很大的,看下面的兩段程式碼:
JSON
XML
各自的優勢
從上面的兩個例子中我們可以看到,由於合理地利用了程式碼縮排和空格,JSON比XML可讀性更強一些,另外,JSON沒有利用全標記的結構,所以程式碼看起來更加緊湊,佔用的空間也少。
JSON的另一個優勢是它可以包含更多的結構化資訊,比如:它更容易表達不同的資料格式,像numbers (11),strings (“11″)和NULL值,甚至是陣列。
另一方面,XML依然被開發者廣泛地使用著,作為資料格式領域的老大哥,XML也有很多自己的優勢,比如:XML有更多的文件和開發工具。另外一個比JSON更大的優勢是XML有一個 XML schema 來描述XML結構化資訊,它能夠詳細描述XML文件的資訊,也可以進行資料的驗證。
選擇JSON還是XML?
最後,我們來客觀地選擇JSON還是XML。如果你正要學習JSON及其相關的庫,那麼你可以繼續學習,因為JSON將更加流行,使用也更加廣泛。另外,如果你相對保守的話,你可以堅持使用XML,對於這麼多年老牌的標記語言,證明了XML的存在是有其價值的,未來它也不會被全部取代。
那麼談談你對這兩種資料格式的看法,你在開發中更傾向於哪一種資料格式呢?
譯文連結:http://www.codeceo.com/article/json-vs-xml.html
英文原文:Battle of data formats: JSON vs XML
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- iOS開發之解析XML格式資料iOSXML
- 探索多種資料格式:JSON、YAML、XML、CSV等資料格式詳解與比較JSONYAMLXML
- JSON 資料格式JSON
- Python資料處理(一):處理 JSON、XML、CSV 三種格式資料PythonJSONXML
- Python將xml格式轉換為json格式PythonXMLJSON
- js將xml格式內容轉換為json格式XMLJSON
- JSON資料格式的使用JSON
- php操作JSON格式資料PHPJSON
- Swift學習筆記(2)網路資料交換格式(XML,JSON)解析 [iOS實戰 入門與提高卷]Swift筆記XMLJSONiOS
- 資料型別和Json格式資料型別JSON
- Delphi處理JSON格式資料JSON
- 處理json格式的資料JSON
- NPM酷庫051:xml2js,解析XML格式資料NPMXMLJS
- WebApi XML,Json格式自定義,IEnumerable<T>,ArrayOfWebAPIXMLJSON
- JSON資料交換格式有幾種?JSON
- springMVC傳遞JSON格式資料SpringMVCJSON
- Java與Json資料格式轉換JavaJSON
- 資料庫表格轉換成XML格式方法!資料庫XML
- 向Solr資料集提交Json格式資料(Scala,Post)SolrJSON
- Go之json資料GoJSON
- DATUM-支援不同格式(JSON,CSV,SQL,XML等)的線上模擬資料生成器JSONSQLXML
- 將任意格式轉換為JSON資料格式的工具類JSON
- spring mvc實現Restful返回xml格式資料SpringMVCRESTXML
- Android中XML格式資料的簡單使用AndroidXML
- .NetCore獲取Json和Xml格式的配置資訊NetCoreJSONXML
- 在.NET使用JSON作為資料交換格式JSON
- JavaScript和json對資料格式的轉換JavaScriptJSON
- MySQL之json資料操作MySqlJSON
- 兩種介面傳送資料協議(xml和json)協議XMLJSON
- json_encode的資料格式化的兩種格式[]和{}JSON
- XML - Schema之資料型別重用XML資料型別
- RDBMS VS XML VS NoSQLXMLSQL
- ajax為什麼需要json格式響應資料?JSON
- 蝦皮商品詳情介面返回資料的json格式JSON
- jQuery處理json格式資料程式碼例項jQueryJSON
- jQuery解析json格式資料生成級聯選單jQueryJSON
- react根據json格式資料動態增加domReactJSON
- Android中JSON資料格式的簡單使用AndroidJSON