數(shù)據(jù)格式的歷史與對比:JSON vs XML
在比較JSON和XML之前,我們先來上一堂關(guān)于數(shù)據(jù)格式的簡要歷史(更準確的說,是關(guān)于XML的始祖):
- 早在1970年,IBM開發(fā)了一種叫Generalized Markup Language的標記語言,簡稱GML,它主要是為腳本語言定義的一組宏。
- 1986年,基于GML開發(fā)的另一種標記語言Standard Generalized Markup Language(簡稱SGML)誕生,并成為了ISO標準,接著在1998年,SGML又被重新定義為XML。
然而另一方面,JSON是Douglas Crockford在2001年開始推廣使用的數(shù)據(jù)格式,在2005年-2006年正式成為主流的數(shù)據(jù)格式,雅虎和谷歌就在那時候開始廣泛地使用JSON格式。
兩者的定義
XML(Extensible Markup Language)是一種用來編碼文檔的標記語言,人和機器都能夠快速理解XML文檔的含義。它的其中一個目標就是能在互聯(lián)網(wǎng)上廣泛應用,現(xiàn)在XML已經(jīng)被廣泛地應用在各種應用、WEB服務和網(wǎng)站中。
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)格式,它以”name / value”的格式來傳輸數(shù)據(jù)對象,JSON的目的就是為了能替代XML,現(xiàn)在也有很多編程語言支持JSON格式了。
從語法的角度看,兩者的區(qū)別還是很大的,看下面的兩段代碼:
JSON
XML
各自的優(yōu)勢
從上面的兩個例子中我們可以看到,由于合理地利用了代碼縮進和空格,JSON比XML可讀性更強一些,另外,JSON沒有利用全標記的結(jié)構(gòu),所以代碼看起來更加緊湊,占用的空間也少。
JSON的另一個優(yōu)勢是它可以包含更多的結(jié)構(gòu)化信息,比如:它更容易表達不同的數(shù)據(jù)格式,像numbers (11),strings (“11″)和NULL值,甚至是數(shù)組。
另一方面,XML依然被開發(fā)者廣泛地使用著,作為數(shù)據(jù)格式領域的老大哥,XML也有很多自己的優(yōu)勢,比如:XML有更多的文檔和開發(fā)工具。另外一個 比JSON更大的優(yōu)勢是XML有一個 XML schema 來描述XML結(jié)構(gòu)化信息,它能夠詳細描述XML文檔的信息,也可以進行數(shù)據(jù)的驗證。
選擇JSON還是XML?
***,我們來客觀地選擇JSON還是XML。如果你正要學習JSON及其相關(guān)的庫,那么你可以繼續(xù)學習,因為JSON將更加流行,使用也更加廣泛。 另外,如果你相對保守的話,你可以堅持使用XML,對于這么多年老牌的標記語言,證明了XML的存在是有其價值的,未來它也不會被全部取代。
那么談談你對這兩種數(shù)據(jù)格式的看法,你在開發(fā)中更傾向于哪一種數(shù)據(jù)格式呢?
譯文鏈接:http://www.codeceo.com/article/json-vs-xml.html
英文原文:Battle of data formats: JSON vs XML
翻譯作者:小峰