爲什麼都反對 XML 而支持使用 JSON?

概念

XML

“當 XML(擴展標記語言)於 1998 年 2 月被引入軟件工業界時,它給整個行業帶來了一場風暴。有史以來第一次,這個世界擁有了一種用來結構化文檔和數據的通用且適應性強的格式,它不僅僅可以用於 WEB,而且可以被用於任何地方。”
—《Designing With Web Standards Second Edition》, Jeffrey Zeldman

XML,可擴展的標識語言(eXtensibleMarkupLanguage),其先驅是SGML和HTML。是一種用於標記電子文件使其具有結構性的標記語言。

JSON

JSON:JavaScript 對象表示法(JavaScript Object Notation)。

JSON 是存儲和交換文本信息的語法。類似 XML。

XML和JSON的主要組成成分:

XML是由element和element content還有attribute組成的。

JSON數據類型則比較多:object、array、string、number、Boolean(布爾類型true和false)以及可以有null值。

  • number:和JavaScript的number完全一致;
  • Boolean:就是JavaScript的true或false;
  • string:就是JavaScript的string;
  • null:就是JavaScript的null;
  • array:就是JavaScript的Array表示方式——[];
  • object:就是JavaScript的{ … }表示方式。

優缺點:

XML優點

  • XML使用DTD(document type definition)文檔類型定義來組織數據
  • 格式統一,符合標準。
  • 容易與其他系統進行遠程交互,數據共享比較方便。

XML缺點

  • XML文件龐大,文件格式複雜,傳輸佔帶寬;
  • 客戶端下面,不同瀏覽器之間解析XML的方式不一致,很多時候都會導致代碼會有好多重複的,即充滿了冗餘信息(許多標記性的符號)。
  • 服務器端和客戶端解析XML花費較多的資源和時間。

JSON優點

  • JSON 比 XML 更小、更快,更易解析
  • 數據格式比較簡單,易於讀寫,格式都是壓縮的,佔用帶寬小;
  • JSON 是輕量級的文本數據交換格式
  • 易於解析,客戶端JavaScript可以簡單的通過eval()進行JSON數據的讀取;
  • JSON 獨立於語言,便於服務器端的解析;
  • 在PHP世界,已經有PHP-JSON和JSON-PHP出現了,偏於PHP序列化後的程序直接調用,PHP服務器端的對象、數組等能直接生成JSON格式,便於客戶端的訪問提取;
  • 因爲JSON格式能直接爲服務器端代碼使用,大大簡化了服務器端和客戶端的代碼開發量,且完成任務不變,並且易於維護。即JSON 具有自我描述性,更易理解。

JSON缺點

  • 沒有XML格式這麼推廣的深入人心和喜用廣泛,沒有XML那麼通用性。
  • JSON格式目前在Web Service中推廣還屬於初級階段。

在編碼方面的比較:

雖然XML和JSON都有各自的編碼工具,但是JSON的編碼要比XML簡單。
即使不借助工具,也可以寫出JSON代碼,但要寫出好的XML代碼就有點困難;。
與XML一樣,JSON也是基於文本的,且它們都使用Unicode編碼,且其與數據交換格式XML一樣具有可讀性。
主觀上來看,JSON更爲清晰且冗餘更少些。JSON網站提供了對JSON語法的嚴格描述,只是描述較簡短。從總體來看,XML比較適合於標記文檔,而JSON卻更適於進行數據交換處理。

代碼比較

XML代碼

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

json代碼

{
	"note": [
		{
			"to":"George" , 
			"from":"John" ,
			"heading":"Reminder" , 
		 	"body":"Don't forget the meeting!" 
		}
	]
}

根據代碼可以看出來:
就編碼的可讀性來說,XML有明顯的優勢,畢竟人類的語言更貼近這樣的說明結構。JSON讀起來更像一個數據塊,讀起來就比較費解了。不過,我們讀起來費解的語言,恰恰是適合機器閱讀。
就編碼的手寫難度來說,XML還是舒服一些,好讀當然就好寫。不過寫出來的字符JSON就明顯少很多。去掉空白製表以及換行的話,JSON就是密密麻麻的有用數據,而XML卻包含很多重複的標記字符。

關於爲什麼大多數人都反對XML而支持使用JSON,以上就是小編的總結,下面是我在網上看到的各位大佬的回覆:

A:在普通的web應用領域,開發者經常爲XML的解析傷腦筋,無論是服務器端生成或處理XML,還是客戶端用 JavaScript 解析XML,都常常導致複雜的代碼,極低的開發效率。
實際上,對於大多數Web應用來說,他們根本不需要複雜的XML來傳輸數據,XML宣稱的擴展性在此就很少具有優勢,許多Ajax應用甚至直接返回HTML片段來構建動態Web頁面。和返回XML並解析它相比,返回HTML片段大大降低了系統的複雜性,但同時缺少了一定的靈活性。同XML或 HTML片段相比,數據交換格式JSON 提供了更好的簡單性和靈活性。在Web Serivice應用中,至少就目前來說XML仍有不可動搖的地位。

B:在數據傳輸的應用下,我會更傾向json,但在人機都需要識別數據的時候,比如配置文件,我還是傾向xml,xml的可讀性比json好。正如輪子哥說的,這兩者不是互相替代。

C:JSON 比XML看着順眼。

若是還有什麼疑問,可以評論區裏面發出來,大家相互交流,或者可以私我

發佈了10 篇原創文章 · 獲贊 6 · 訪問量 949
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章