| 導購 | 订阅 | 在线投稿
分享
 
 
 

Ajax:擁抱JSON,讓XML走開

來源:互聯網網民  2006-12-10 06:53:40  評論

Ajax(Asynchronous javaScript and xml)說到底就是一種浏覽器異步讀取服務器上XML內容的技術。現在的技術凡是跟XML扯上關系,再加上個概念做幌子,就像金裝了一樣,拽得不行。門外 的人看得很是熱鬧,門裏的人搖搖頭不外如是。XML呢,跨平台的新潮語言?其實XML=TXT。XML只是符合很多規範的文本。它本身什麽都不是,只是保 存字符的文件。而浏覽器異步讀取的只是服務器上的文本內容,所以在Ajax開發時完全不必拘泥于XML。[版權所有,www.jialing.net]

JSON的來曆

XML 的作用是格式化數據內容。如果我們不用XML還有什麽更好的方法嗎?這個答案是JSON。介紹JSON之前我先介紹一下Javascript這門腳本語 言。腳本語言自身有動態執行的天賦。即我們可以把想要執行的語句放在字符串裏,通過eval()這個動態執行函數來執行。字符串裏的內容會像我們寫的腳本 一樣被執行。

示例1:

<HTML>

<HEAD>

<TITLE>eval example 1</TITLE>

</HEAD>

<BODY>

<script>

str = "alert('hello')";

eval(str);

</script>

</BODY>

</HTML>

打開頁面會彈出hello窗口。

我們可以在字符串中放任何腳本語句,包括聲明語句:

<HTML>

<HEAD>

<TITLE>eval example 2</TITLE>

</HEAD>

<BODY>

<script>

define = "{name:'Michael',email:'17bity@Gmail.com'}";

eval("data = "+define);

alert("name:"+data.name);

alert("email:"+data.email);

</script>

</BODY>

</HTML>

如果我們在後台異步傳來的文本是JavaScript的聲明語句,那麽不是一條eval方法就能解析了?對于解析複雜的XML,這樣的效率是多麽大的提高啊!

現在就來告訴你什麽是JSON:JavaScript Object Notation。我更願意把它翻譯爲JavaScript對象聲明。比如要從後台載入一些通訊錄的信息,如果寫成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呢:

[

{

name:"Michael",

email:"17bity@gmail.com",

homepage:"http://www.jialing.net"

},

{

name:"John",

email:"john@gmail.com",

homepage:"http://www.jobn.com"

},

{

name:"Peggy",

email:"peggy@gmail.com",

homepage:"http://www.peggy.com"

}

]

簡單的不只是表達上,最重要的是可以丟棄讓人暈頭轉向的DOM解析了。因爲只要符合JavaScript的聲明規範,JavaScrip會自動幫你解析好 的。Ajax中使用JSON的基本方法是前台載入後台聲明JavaScript對象的字符串,用eval方法來將它轉爲實際的對象,最後通過 DHTML更新頁面信息。

JSON的格式

JSON的基本格式如下,圖片來自json.org:

·對象是屬性、值對的集合。一個對象的開始于"{",結束于"}"。每一個屬性名和值間用":"提示,屬性間用","分隔。


Ajax:擁抱JSON,讓XML走開

·數組是有順序的值的集合。一個數組開始于"[",結束于"]",值之間用","分隔。


Ajax:擁抱JSON,讓XML走開

·值可以是引號裏的字符串、數字、true、false、null,也可以是對象或數組。這些結構都能嵌套。


Ajax:擁抱JSON,讓XML走開

·字符串的定義和C或Java基本一致。


Ajax:擁抱JSON,讓XML走開

·數字的定義也和C或Java基本一致。


Ajax:擁抱JSON,讓XML走開

JSON VS XML

·可讀性

JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規範的標簽形式,很難分出勝負。

·可擴展性

XML天生有很好的擴展性,JSON當然也有,沒有什麽是XML能擴展,JSON不能的。

·編碼難度

XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的代碼,可是要寫好XML就不太容易了。

·解碼難度

XML的解析得考慮子節點父節點,讓人頭昏眼花,而JSON的解析難度幾乎爲0。這一點XML輸的真是沒話說。

·流行度

XML已經被業界廣泛的使用,而JSON才剛剛開始,但是在Ajax這個特定的領域,未來的發展一定是XML讓位于JSON。到時Ajax應該變成Ajaj(Asynchronous JavaScript and JSON)了。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
  Ajax(Asynchronous javaScript and xml)說到底就是一種浏覽器異步讀取服務器上XML內容的技術。現在的技術凡是跟XML扯上關系,再加上個概念做幌子,就像金裝了一樣,拽得不行。門外 的人看得很是熱鬧,門裏的人搖搖頭不外如是。XML呢,跨平台的新潮語言?其實XML=TXT。XML只是符合很多規範的文本。它本身什麽都不是,只是保 存字符的文件。而浏覽器異步讀取的只是服務器上的文本內容,所以在Ajax開發時完全不必拘泥于XML。[版權所有,www.jialing.net]   JSON的來曆   XML 的作用是格式化數據內容。如果我們不用XML還有什麽更好的方法嗎?這個答案是JSON。介紹JSON之前我先介紹一下Javascript這門腳本語 言。腳本語言自身有動態執行的天賦。即我們可以把想要執行的語句放在字符串裏,通過eval()這個動態執行函數來執行。字符串裏的內容會像我們寫的腳本 一樣被執行。   示例1: <HTML> <HEAD>  <TITLE>eval example 1</TITLE> </HEAD> <BODY>  <script>   str = "alert('hello')";   eval(str);  </script> </BODY> </HTML>   打開頁面會彈出hello窗口。   我們可以在字符串中放任何腳本語句,包括聲明語句: <HTML> <HEAD> <TITLE>eval example 2</TITLE> </HEAD> <BODY> <script>  define = "{name:'Michael',email:'17bity@Gmail.com'}";  eval("data = "+define);  alert("name:"+data.name);  alert("email:"+data.email); </script> </BODY> </HTML>   如果我們在後台異步傳來的文本是JavaScript的聲明語句,那麽不是一條eval方法就能解析了?對于解析複雜的XML,這樣的效率是多麽大的提高啊!   現在就來告訴你什麽是JSON:JavaScript Object Notation。我更願意把它翻譯爲JavaScript對象聲明。比如要從後台載入一些通訊錄的信息,如果寫成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呢: [ {  name:"Michael",  email:"17bity@gmail.com",  homepage:"http://www.jialing.net" }, {  name:"John",  email:"john@gmail.com",  homepage:"http://www.jobn.com" }, {  name:"Peggy",  email:"peggy@gmail.com",  homepage:"http://www.peggy.com" } ]   簡單的不只是表達上,最重要的是可以丟棄讓人暈頭轉向的DOM解析了。因爲只要符合JavaScript的聲明規範,JavaScrip會自動幫你解析好 的。Ajax中使用JSON的基本方法是前台載入後台聲明JavaScript對象的字符串,用eval方法來將它轉爲實際的對象,最後通過 DHTML更新頁面信息。   JSON的格式   JSON的基本格式如下,圖片來自json.org:   ·對象是屬性、值對的集合。一個對象的開始于"{",結束于"}"。每一個屬性名和值間用":"提示,屬性間用","分隔。 [url=/bbs/detail_565951.html][img]http://image.wangchao.net.cn/it/1323599503263.gif[/img][/url]   ·數組是有順序的值的集合。一個數組開始于"[",結束于"]",值之間用","分隔。 [url=/bbs/detail_565951.html][img]http://image.wangchao.net.cn/it/1323599503334.gif[/img][/url]   ·值可以是引號裏的字符串、數字、true、false、null,也可以是對象或數組。這些結構都能嵌套。 [url=/bbs/detail_565951.html][img]http://image.wangchao.net.cn/it/1323599503374.gif[/img][/url]   ·字符串的定義和C或Java基本一致。 [url=/bbs/detail_565951.html][img]http://image.wangchao.net.cn/it/1323599503476.gif[/img][/url]   ·數字的定義也和C或Java基本一致。 [url=/bbs/detail_565951.html][img]http://image.wangchao.net.cn/it/1323599503605.gif[/img][/url]   JSON VS XML   ·可讀性   JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規範的標簽形式,很難分出勝負。   ·可擴展性   XML天生有很好的擴展性,JSON當然也有,沒有什麽是XML能擴展,JSON不能的。   ·編碼難度   XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的代碼,可是要寫好XML就不太容易了。   ·解碼難度   XML的解析得考慮子節點父節點,讓人頭昏眼花,而JSON的解析難度幾乎爲0。這一點XML輸的真是沒話說。   ·流行度   XML已經被業界廣泛的使用,而JSON才剛剛開始,但是在Ajax這個特定的領域,未來的發展一定是XML讓位于JSON。到時Ajax應該變成Ajaj(Asynchronous JavaScript and JSON)了。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有