資源描述:
《json與xml的比較研究》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、JSON與XML的比較研究 (內(nèi)蒙古財經(jīng)學院計算機信息管理學院,內(nèi)蒙古呼和浩特010070)
摘要:文章從解析方法和易用性兩個方面對JSON與XML二者進行了比較和分析,指出在AjaxWeb領(lǐng)域,JSON無疑是一個更好的選擇。關(guān)鍵詞:JSON;XML;Ajax;數(shù)據(jù)格式;比較分析
中圖分類號:TP311.52文獻標識碼:A文章編號:1007—6921(XX)24—0122—01
在異步應用程序中發(fā)送和接收信息時,可以選擇以純文本和XML作為數(shù)據(jù)格式。例如,Web在進行數(shù)據(jù)傳輸時通過GET請求發(fā)送的信
2、息就是采用簡單的名稱/值對的文本格式,并將數(shù)據(jù)組合成下面這樣的形式:
firstName=BrettlastName=McLaughlinemail=brettnewInstance.com
此外,XML也已經(jīng)在Ajax應用程序中廣泛使用。上面純文本的數(shù)據(jù)在使用XML進行數(shù)據(jù)傳輸,通常使用的是以下的數(shù)據(jù)格式:
Brett
McLaughlin
brettnewInstance.com而JSON是比純文本類型更適合在Ajaxweb應用程序中使用的數(shù)據(jù)格式。JSON和XML都是非常成熟的結(jié)構(gòu)化
3、數(shù)據(jù)表示方法。那么,傳輸數(shù)據(jù)時,是該選擇XML還是JSON來表示數(shù)據(jù)呢?
1XML與JSON的基礎(chǔ)
1.1XML基礎(chǔ)
XML即可擴展標記語言,是一種平臺無關(guān)的表示數(shù)據(jù)的方法。簡單地說,使用XML創(chuàng)建的數(shù)據(jù)可以被任何應用程序在任何平臺上讀取。甚至可以通過手動編碼來編輯和創(chuàng)建XML文檔。其原因是,XML與HTML一樣,都是建立在相同的基于標記技術(shù)基礎(chǔ)之上。目前,XML的主要用途包括:
1.1.1數(shù)據(jù)存儲。在以數(shù)據(jù)為中心的信息和以文檔的中心的信息這兩個方面,XML都有自己的優(yōu)勢。
1.1.2Web服務。Web
4、服務最初用于在HTTP上傳遞非HTML信息。它們?nèi)缃褚殉蔀橥ㄟ^Ajax獲取字段的基礎(chǔ),用于向Web站點、面向服務體系結(jié)構(gòu)和復雜的基于消息的應用程序添加交互性。XML是Web服務領(lǐng)域不可或缺的一部分。Web服務中的所有主流方法,如SOAP、REST甚至XML-RPC,都是基于XM的。
1.1.3播客和其他數(shù)據(jù)聯(lián)合。現(xiàn)在,XML最普遍的應用是數(shù)據(jù)聯(lián)合領(lǐng)域。數(shù)百萬的博克用戶都在使用RSS提要訂閱他們所喜愛的博客上的最新信息。而RSS本身就是基于XML語言的。
1.2JSON基礎(chǔ)
JSON(#106avascriptO
5、bjectNotation)是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫。同時,也易于機器解析和生成。它基于#106avascriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一個子集。JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣。這些特性使JSON成為理想的數(shù)據(jù)交換語言。
JSON建構(gòu)于2種結(jié)構(gòu):①“名稱/值”對的集合(Acollectionofname/valuepairs)。不同的語言中,它被理解為對象、紀錄
6、、結(jié)構(gòu)、字典、哈希表、有鍵列表,或者關(guān)聯(lián)數(shù)組。②值的有序列表。
例如,在引言中的XML文檔用JSON的語法可以表示為:
{“firstName”:“Brett”,“l(fā)astName”:“McLaughlin”,“email”:“brettnewInstance.com”}
JSON和XML都是非常成熟的結(jié)構(gòu)化數(shù)據(jù)表示方法,兩者都是基于文本的,且都使用Unicode編碼,一樣具有可讀性。最重要的是,它們都是自描述的語言,這對于數(shù)據(jù)格式而言是一種很重要的特征。
2JSON和XML比較
2.1解析方案比較
7、
如果只是要表達一個數(shù)據(jù)結(jié)構(gòu),把一組數(shù)據(jù)作為一個整體存放起來或用于傳輸,那么這就是一個輕量級的應用。無論你有多少數(shù)據(jù),都只能算是輕量級的應用。即可以使用JSON,也可以使用XML。
相對于JSON而言,XML可以算是重量級的數(shù)據(jù)格式,這主要體現(xiàn)在解析上,XML有兩種解析方式:DOM和SAX。DOM把一個XML整體解析成一個DOM對象,這一點和JSON把JSON文字解析成對象是一樣的。SAX是一個類似消息驅(qū)動的解析方法,不需要把整個文檔都解析完就可以對解析出的內(nèi)容進行處理。每當解析出一個對象時,都會通知到程序的處理
8、代碼以處理這個對象。程序也可以隨時中止解析。這樣,一個大的文檔就可以逐步地展現(xiàn)出來。如果在網(wǎng)絡上傳輸數(shù)據(jù)流,那么在傳輸?shù)倪^程中,已傳輸?shù)牟糠志鸵呀?jīng)被處理了。這一點,JSON是做不到的,至少目前的JSON程序組件并沒有支持這種解析方法,JSON只提供整體解析的方案。
在