于数据交换格式XML和JSON的比较
?目前,在web開發(fā)領(lǐng)域,主要的數(shù)據(jù)傳輸格式有XML和JSON,對于XML相信每一個web developer都不會感到陌生;相比之下,JSON可能對于一些新步入開發(fā)領(lǐng)域的新手會感到有些陌生,也可能你之前已經(jīng)聽說過,但對于XML和 JSON的不同之處可能會不怎么了解。對于在 Ajax開發(fā)中,是選擇XML還是JSON,一直存在著爭議,個人還是比較傾向于JSON的,雖然JSON才處于起步階段,但我相信JSON最終會取代XML成為Ajax的首選,到時Ajax可能要更名為Ajaj(Asynchronous JavaScript and JSON)了;
?
1.關(guān)于XML和JSON:
?
???? XML:extensible markup language,一種類似于HTML的語言,他沒有預先定義的標簽,使用DTD(document type definition)文檔類型定義來組織數(shù)據(jù);格式統(tǒng)一,跨平臺和語言,早已成為業(yè)界公認的標準。具體的可以問Google或百度。相比之JSON這種輕量級的 數(shù)據(jù)交換格式,XML可以稱為重量級的了。
????
???? JSON : JavaScript Object Notation 是一種輕量級的數(shù)據(jù)交換格式。 易于人閱讀和編寫。同時也易于機器解析和生成。 它基于JavaScript Programming Language?,?Standard ECMA-262 3rd Edition - December 1999?的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數(shù)據(jù)交換語言。具體的可以看這篇文章:http://www.json.org/json-zh.html
?
2.關(guān)于輕量級和重量級:
?
???? 輕量級和重量級是相對來說的,那么XML相對于JSON的重量級體現(xiàn)在哪呢?我想應該體現(xiàn)在解析上,XML目前設計了兩種解析方式:DOM和SAX;
???? DOM是把一個XML看成一個DOM對象,需要把XML文件整個讀入內(nèi)存,這一點上JSON和XML的原理是一樣的,但是XML要考慮父節(jié)點和子節(jié)點,這一點上JSON的解析難度要小很多,因為JSON構(gòu)建于兩種結(jié)構(gòu):key/value,鍵值對的集合;值的有序集合,可理解為數(shù)組;
???? SAX不需要整個讀入文檔就可以對解析出的內(nèi)容進行處理,是一種逐步解析的方法。程序也可以隨時終止解析。這樣,一個大的文檔就可以逐步的、一點一點的展現(xiàn)出來,所以SAX適合于大規(guī)模的解析。這一點,JSON目前是做不到得。
???? 所以,JSON和XML的輕/重量級的區(qū)別在于:JSON只提供整體解析方案,而這種方法只在解析較少的數(shù)據(jù)時才能起到良好的效果;而XML提供了對大規(guī)模數(shù)據(jù)的逐步解析方案,這種方案很適合于對大量數(shù)據(jù)的處理。
?
3.關(guān)于數(shù)據(jù)格式編碼及解析的難度:
?
???? 在編碼上,雖然XML和JSON都有各自的編碼工具,但是JSON的編碼要比XML簡單,即使不借助工具,也可以寫出JSON代碼,但要寫出好的XML代碼就有點困難;與XML一樣,JSON也是基于文本的,且它們都使用Unicode編碼,且其與XML一樣具有可讀性。主觀上來看,JSON更為清晰且冗余更少些。JSON網(wǎng)站提供了對JSON語法的嚴格描述,只是描述較簡短。從總體來看,XML比較適合于標記文檔,而JSON卻更適于進行數(shù)據(jù)交換處理。
???? 在解析上,在普通的web應用領(lǐng)域,開發(fā)者經(jīng)常為XML的解析傷腦筋,無論是服務器端生成或處理XML,還是客戶端用 JavaScript 解析XML,都常常導致復雜的代碼,極低的開發(fā)效率。實際上,對于大多數(shù)web應用來說,他們根本不需要復雜的XML來傳輸數(shù)據(jù),XML宣稱的擴展性在此就很少具有優(yōu)勢;許多Ajax應用甚至直接返回HTML片段來構(gòu)建動態(tài)web頁面。和返回XML并解析它相比,返回HTML片段大大降低了系統(tǒng)的復雜性,但同時缺少了一定的靈活性。同XML或HTML片段相比,JSON 提供了更好的簡單性和靈活性。在web serivice應用中,至少就目前來說XML仍有不可動搖的地位
總結(jié)
以上是生活随笔為你收集整理的于数据交换格式XML和JSON的比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二手单反值得买吗
- 下一篇: asp.net ajax控件工具集 Au