XML——這種用於表示客戶端與服務器間數據交換有效負載的格式,幾乎已經成了Web services的同義詞。咱們知道AJAX技術可以使得每一次請求更加迅捷,對於每一次請求返回的不是整個頁面,也僅僅是所須要返回的數據。然而,因爲Ajax和REST技術的出現影響了應用程序架構,這迫令人們開始尋求`XML的替代品,如:JavaScript Object Notation(JSON)。html
JSON 做爲一種更輕、更友好的 Web services客戶端的格式(多采用瀏覽器的形式或訪問 REST風格 Web服務的Ajax應用程序的形式)引發了 Web 服務供應商的注意。一般AJAX經過返回XML格式的數據,而後再經過客戶端複雜的JavaScript腳本解析和渲染這些XML格式的數據。JSON(讀Jason)是爲了可以使得數據格式成爲一種標準,更簡單的被JavaScript解析。json
本文將闡述JSON在Web services設計中備受推崇的緣由,以及它做爲XML替代方案的主要優點和侷限性。文中還會深刻探討:隨着相應的Web 服務客戶端選擇使用JSON,如何才能便捷地在Java Web services中生成JSON輸出。數組
json的官方文檔:http://www.json.org/json-zh.htmlhttp://www.mlyrx120.com瀏覽器
JSON的優勢服務器
輕量級的數據交換格式架構
人們讀寫更加容易異步
易於機器的解析和生成函數
可以經過JavaScript中eval()函數解析JSONui
JSON支持多語言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua..net
JSON語法是一種用於傳輸和生成數據的協定,很相似於C家族的語言,因此很容易被C家族的語言所解析。
對象:對象包含再{}之間
屬性:採用Key-Value對來表示。屬性之間使用逗號分開。 string : value
數組:數組存放再[]之間 [ elements ]
元素:元素之間用逗號分開
值:值能夠是字符串,數字,對象,數組,true,false,null
例子:
JSON
{"menu": {
"id": "file",
"value": "File:",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"} ]
}
}}
XML
XML 的做用是格式化數據內容。若是咱們不用XML還有什麼更好的方法嗎?這個答案是JSON。介紹JSON以前我先介紹一下JavaScript這門腳本語 言。腳本語言自身有動態執行的天賦。即咱們能夠把想要執行的語句放在字符串裏,經過eval()這個動態執行函數來執行。字符串裏的內容會像咱們寫的腳本 同樣被執行。
打開頁面會彈出hello窗口。咱們能夠在字符串中聽任何腳本語句,包括聲明語句,等等一系列東西,好比:
若是咱們在後臺異步傳來的文本是JavaScript的聲明語句,那麼不是一條eval方法就能解析了?對於解析複雜的XML,這樣的效率是多麼大的提升啊!如今就來告訴你什麼是JSON:JavaScript Object Notation。我更願意把它翻譯爲JavaScript對象聲明。好比要從後臺載入一些通信錄的信息,若是寫成XML,以下:
Michael
17bity@gmail.com
http://www.jialing.net
John
john@gmail.com
http://www.john.com
Peggy
peggy@gmail.com
http://www.peggy.com
而寫成JSON呢,就以下面:
[
{
name:"Michael",
email:"17bity@gmail.com",
homepage:"http://www.jialing.net"
},
{
name:"John",
email:"john@gmail.com",
homepage:"http://www.jobn.com"http://rl.82676666.com
},
{
name:"Peggy",
email:"peggy@gmail.com",
homepage:"http://www.peggy.com"
}
]
簡單的不僅是表達上,最重要的是能夠丟棄讓人暈頭轉向的DOM解析了。由於只要符合JavaScript的聲明規範,JavaScrip會自動幫你解析好 的。Ajax中使用JSON的基本方法是前臺載入後臺聲明JavaScript對象的字符串,用eval方法來將它轉爲實際的對象,最後經過 DHTML更新頁面信息。