慢解JSON解析器的問題學(xué)習(xí)研究
下面對(duì)JSON解析器進(jìn)行相關(guān)的介紹,作為重點(diǎn)支持ASP.NET開發(fā)平臺(tái)的開源Ajax框架在它一出世時(shí)就受到廣大.NET開發(fā)人員的青睞,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
在本文中,在正式討論JSON格式之前,首先讓我們簡(jiǎn)要回憶一下XML。XML是“可擴(kuò)展的標(biāo)記語言”的簡(jiǎn)稱,它提供了定義Web中一系列數(shù)據(jù)傳輸協(xié)議的方式,是文本型的,被人們譽(yù)為“完全開發(fā)Internet和Web潛力的理想方式”。#t#
那么,為什么ASP.NET AJAX中還要引入JSON呢?還是讓我們先來觀察一下例子吧。比如當(dāng)前Web頁(yè)面將從后臺(tái)載入一些通訊錄的信息,這些信息如果寫成XML,可能是如下形式:
- <contact>
- <friend>
- <name>Michael</name>
- <email>17bity@gmail.com</email>
- <homepage>http://www.jialing.net</homepage>
- </friend>
- <friend>
- <name>John</name>
- <email>john@gmail.com</email>
- <homepage>http://www.john.com</homepage>
- </friend>
- <friend>
- <name>Peggy</name>
- <email>peggy@gmail.com</email>
- <homepage>http://www.peggy.com</homepage>
- </friend>
- </contact>
- 而寫成JSON形式,則會(huì)是:
- [
- friend: {
- name:"Michael",
- email:"17bity@gmail.com",
- homepage:"http://www.jialing.net"
- },
- friend: {
- name:"John",
- email:"john@gmail.com",
- homepage:"http://www.jobn.com"
- },
- friend: {
- name:"Peggy",
- email:"peggy@gmail.com",
- homepage:"http://www.peggy.com"
- }
相比之下,JSON解析器表達(dá)方式明顯更為簡(jiǎn)潔。其實(shí),我們最關(guān)心的并不只是表達(dá)上的簡(jiǎn)單性,最重要的是如何簡(jiǎn)化DOM的解析。因?yàn)椴煌臑g覽器中XML/SOAP解釋器的實(shí)現(xiàn)是有所不同的,所以,解釋相同的XML和SOAP格式的數(shù)據(jù)未必會(huì)一定得到一致的結(jié)果。#t#
為此,ASP.NET AJAX中特地引入了更為輕量級(jí)的JSON格式,并創(chuàng)建了一致的JSON解析器,再加上JavaScript本身就支持以JSON方式創(chuàng)建對(duì)象,所以,這一切都顯然十分流暢自然和水到渠成。