資源描述:
《ajax-擁抱json》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Ajax:擁抱JSON,讓XML走開Ajax(AsynchronousJavaScriptandXML)說到底就是一種瀏覽器異步讀取服務(wù)器上XML內(nèi)容的技術(shù)?,F(xiàn)在的技術(shù)凡是跟XML扯上關(guān)系,再加上個概念做幌子,就像金裝了一樣,拽得不行。門外的人看得很是熱鬧,門里的人搖搖頭不外如是。XML呢,跨平臺的新潮語言?其實XML=TXT。XML只是符合很多規(guī)范的文本。它本身什么都不是,只是保存字符的文件。而瀏覽器異步讀取的只是服務(wù)器上的文本內(nèi)容,所以在Ajax開發(fā)時完全不必拘泥于XML。[版權(quán)所有,www.jialin
2、g.net] JSON的來歷 XML的作用是格式化數(shù)據(jù)內(nèi)容。如果我們不用XML還有什么更好的方法嗎?這個答案是JSON。介紹JSON之前我先介紹一下JavaScript這門腳本語言。腳本語言自身有動態(tài)執(zhí)行的天賦。即我們可以把想要執(zhí)行的語句放在字符串里,通過eval()這個動態(tài)執(zhí)行函數(shù)來執(zhí)行。字符串里的內(nèi)容會像我們寫的腳本一樣被執(zhí)行?! ∈纠?:<HTML><HEAD>?。糡ITLE>evalexample1</TITLE></HEAD><BODY>?。約cript> str="alert('hello'
3、)"; eval(str);?。?script></BODY></HTML> 打開頁面會彈出hello窗口?! ∥覀兛梢栽谧址蟹湃魏文_本語句,包括聲明語句:<HTML><HEAD><TITLE>evalexample2</TITLE></HEAD><BODY><script> define="{name:'Michael',email:'17bity@gmail.com'}"; eval("data="+define); alert("name:"+data.name); alert("email:"
4、+data.email);</script></BODY></HTML> 如果我們在后臺異步傳來的文本是JavaScript的聲明語句,那么不是一條eval方法就能解析了?對于解析復(fù)雜的XML,這樣的效率是多么大的提高??! 現(xiàn)在就來告訴你什么是JSON:JavaScriptObjectNotation。我更愿意把它翻譯為JavaScript對象聲明。比如要從后臺載入一些通訊錄的信息,如果寫成XML,如下:<contact>?。糵riend> ?。糿ame>Michael</name> <email>17
5、bity@gmail.com</email> <homepage>http://www.jialing.net</homepage>?。?friend> <friend> ?。糿ame>John</name> ?。糴mail>john@gmail.com</email> ?。糷omepage>http://www.john.com</homepage>?。?friend> <friend> ?。糿ame>Peggy</name> ?。糴mail>peggy@gmail.com</email> <homep
6、age>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",
7、 homepage:"http://www.peggy.com"}] 簡單的不只是表達上,最重要的是可以丟棄讓人暈頭轉(zhuǎn)向的DOM解析了。因為只要符合JavaScript的聲明規(guī)范,JavaScrip會自動幫你解析好的。Ajax中使用JSON的基本方法是前臺載入后臺聲明JavaScript對象的字符串,用eval方法來將它轉(zhuǎn)為實際的對象,最后通過DHTML更新頁面信息?!SON的格式 JSON的基本格式如下,圖片來自json.org: ·對象是屬性、值對的集合。一個對象的開始于"{",結(jié)束于"}"。每一
8、個屬性名和值間用":"提示,屬性間用","分隔。 ·數(shù)組是有順序的值的集合。一個數(shù)組開始于"[",結(jié)束于"]",值之間用","分隔?! ぶ悼梢允且柪锏淖址?、數(shù)字、true、false、null,也可以是對象或數(shù)組。這些結(jié)構(gòu)都能嵌套?! ぷ址亩x和C或Java基本一致?! ?shù)字的定義也和C或Java基本一致?!SONVSXML ·可讀性 JSON和XML的可讀性可謂不相上下,一邊