慢解JSON解析器的問題學習研究
下面對JSON解析器進行相關的介紹,作為重點支持ASP.NET開發平臺的開源Ajax框架在它一出世時就受到廣大.NET開發人員的青睞,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
在本文中,在正式討論JSON格式之前,首先讓我們簡要回憶一下XML。XML是“可擴展的標記語言”的簡稱,它提供了定義Web中一系列數據傳輸協議的方式,是文本型的,被人們譽為“完全開發Internet和Web潛力的理想方式”。#t#
那么,為什么ASP.NET AJAX中還要引入JSON呢?還是讓我們先來觀察一下例子吧。比如當前Web頁面將從后臺載入一些通訊錄的信息,這些信息如果寫成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形式,則會是:
- [
- 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解析器表達方式明顯更為簡潔。其實,我們最關心的并不只是表達上的簡單性,最重要的是如何簡化DOM的解析。因為不同的瀏覽器中XML/SOAP解釋器的實現是有所不同的,所以,解釋相同的XML和SOAP格式的數據未必會一定得到一致的結果。#t#
為此,ASP.NET AJAX中特地引入了更為輕量級的JSON格式,并創建了一致的JSON解析器,再加上JavaScript本身就支持以JSON方式創建對象,所以,這一切都顯然十分流暢自然和水到渠成。