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