JSON VS XML:JSON真的比XML好很多嗎?

jopen 12年前發布 | 20K 次閱讀 JSON

JSON是一個新的人類可讀( human readable)的數據格式,在過去幾年中已變得非常受歡迎,尤其是在web開發中。


JSON和 XML非常的相似。它們都試圖通過建立一種簡單,人類可讀的格式存儲數據。直到最近,XML被用于任何類型的需要迅速發送一小部分數據的系統中。比如那些從服務器獲取信息的API。在大多數情況下,XML做的很好。那么,為什么還需要JSON?

JSON在設計時是為Web考慮的,所以它在JavaScript中真的很好用。使用類似 eval()的方法(使用 jQuery會很大提升這個方法的表現),你可以很容易使用JSON中的信息填充一個Web頁面。

JSON聲稱相對XML有許多好處,包括:
  • 容易閱讀
  • 解析速度更快
  • 占用空間更少
盡管容易閱讀是很難衡量的一點,但其它兩點是很顯然的。

很容易看出,存儲相同的信息JSON確實需要更少的空間。快速瀏覽一下JSON的網站后,你會發現幾個比較這兩種格式的例子。從頁面上可以很容易的看出:描述同樣的信息JSON比XML少占用很多的空間。例如:第一個例子(詞匯表結構)存儲為XML需要502個字符,而存儲為JSON只需345字符(大約少占30%的空間)。

對于“解析速度更快”這一點,有點難以測試。對此我寫了一個快速測試來看看我能以多快的速度來把一個XML和JSON字符串轉化為Java對象。

對于XML解析,我使用Java內置的 SAX解析器。SAX解析器允許遍歷XML文件,并把XML值賦給對象中適當的字段。這種方法相對JSON解析是比較繁瑣的,但不是沒有道理。

JSON的解析,我使用了GSON庫,只需用一行代碼就可以很容易地在JSON和java對象之間轉換,只需要一個這個類的定義就可以了(如Book類,字段名和JSON中的對應)。不過這使得這個類變量和JSON實例綁定到了一起。一旦類的實例名稱或JSON字段名有了變化,將會出現問題。

首先,我用相同的數據創建了一個XML和JSON來表示它。下面的XML和JSON文件是使用 Programming Pearls中的信息創建的。
XML版本
<book>
     <type>textbook</type>
     <pages>256</pages>
     <title>Programming Pearls 2nd Edition</title>
     <description>The first edition of Programming Pearls was one of the most influential books I read early in my career...</description>
     <rating>4.5</rating>
     <coverType>paperback</coverType>
     <genre>Computer Science</genre>
     <author>Jon Bentley</author>
     <publisher>Addison-Wesley Professional</publisher>
     <copyright>1999</copyright>
</book>

JSON版本
{
 "book": {
     "type": "textbook",
     "pages": "256",
     "title": "Programming Pearls 2nd Edition",
     "description": "The first edition of Programming Pearls was one of the most influential books I read early in my career...",
     "rating": "4.5",
     "coverType": "paperback",
     "genre": "Computer Science",
     "author": "Jon Bentley",
     "publisher": "Addison-Wesley Professional",
     "copyright": "1999"
     }
 }
 結果

 使用上面的XML和JSON文件分別運行解析測試10,000,000次。結果并不令人驚訝,解析和轉換JSON成一個Java對象的速度比XML快30%左右。
  • JSON平均運行時間:3.647208974029518E-5
  • XML平均運行時間:5.011537916910817E-5
我得到的結論是:
    相對XML,JSON的解析速度提高了30%,占用空間少30%。這些結果似乎和多數開發社區對兩種格式的看法一樣。換用JSON處理數據在性能上可以有不小的提升,而且還會減少空間的占用。

轉自:OsChina 原文鏈接

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!