Json相關技術


  AJAX即“Asynchronous JavaScript and XML”(異步JavaScript和XML)以后會被改為Ajaj(Asynchronous JavaScript and object notation)這個很難說啊!!

說到JSon,那當然要提及xml,XML是進行數據交換的標准方式這種用於表示客戶端與服務器間數據交換有效負載的格式,幾乎已經成了Web services的同義詞。我們知道AJAX技術能夠使得每一次請求更加迅捷,對於每一次請求返回的不是整個頁面,也僅僅是所需要返回的數據。然而,由於Ajax和REST技術的出現影響了應用程序架構,這迫使人們開始尋求`XML的替代品。

  在AJAX技術中,在用戶觀看並與頁面交互的同時(這正相應於AJAX中的“異步”部分),由頁 面中的JavaScript負責把數據請求發送到一個Web服務器。這些請求只是一些普通的HTTP請求,與瀏覽器用於頁面(連同其中的任何圖像,層疊式 樣表等內容)檢索的HTTP完全相同。同時,XMLHttpRequest對象可以用於檢索任何類型的數據,而不僅僅是XML類型。例 如,JavaScript可以使用XMLHttpRequest來檢索一個來自於Web服務器的普通文本文本並且把它的內容顯示於一個表單中。
  通過查找位於數據之前的“content-type”頭部,XMLHttpRequest對象分析從Web服務器返回的數據的MIME類型。例 如,如果這些數據的MIME類型是“text/plain”,那么你可以通過分析XMLHttpRequest對象的responseText屬性來存取 它;然而,如果其MIME類型為“text/xml”,那么XMLHttpRequest對象必須采取額外的措施:它要在返回的文檔對象上運行 一個XML分析器在內存中構建一棵文檔對象模型(DOM)樹來描述該文檔,並且還要使其可用於responseXML屬性。然后,你才可以使用JavaScript的標准DOM方法在樹中導航並檢索元素、屬性及位於該DOM樹中的其它文本。
  雖然XML是進行數據交換的標准方式,但是通常它不是最好的方式。盡管XML可以 把結構和元數據添加到數據上,但是它使用了一種相當繁瑣的方式。XML還有一種相對復雜的語法,因而需要一種分析器對之進行專門分析。在 JavaScript中,XML必須被分析成一棵以備后用的DOM樹。並且,一旦你構建了這棵DOM樹,你還必須在其中導航以便創建相應的 JavaScript對象或者以其它方式在你的客戶端Web應用程序中使用XML數據。
  到這里,就會體驗到Json了。

JSON的優點

  • 輕量級的數據交換格式
  • 人們讀寫更加容易
  • 易於機器的解析和生成
  • 能夠通過JavaScript中eval()函數解析JSON
  • JSON支持多語言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.


JSON語法是一種用於傳輸和生成數據的協定,很類似於C家族的語言,所以很容易被C家族的語言所解析。
對象:對象包含再{}之間
屬性:采用Key-Value對來表示。屬性之間使用逗號分開。  string : value
數組:數組存放再[]之間   [ elements ]
元素:元素之間用逗號分開
值:值可以是字符串,數字,對象,數組,true,false,null

 

<?xml version='1.0' encoding='UTF-8'?>
<card>
<fullname>Sean Kelly</fullname>
<org>SK Consulting</org>
<emailaddrs>
<address type='work'>http://www.cnblogs.com/smallcup/</address>
<address type='home' pref='1'>http://www.cnblogs.com/smallcup/</address>
</emailaddrs>
<telephones>
<tel type='work' pref='1'>+1 214 555 1212</tel>
<tel type='fax'>+1 214 555 1213</tel>
<tel type='mobile'>+1 214 555 1214</tel>
</telephones>
<addresses>
<address type='work' format='us'>1234 Main St
Springfield, TX 78080-1216</address>
<address type='home' format='us'>5678 Main St
Springfield, TX 78080-1316</address>
</addresses>
<urls>
<address type='work'>http://www.cnblogs.com/smallcup/</address>
<address type='home'>http://www.cnblogs.com/smallcup/</address>
</urls>
</card>

而使用JSON來表達,上面的形式將變成如下模樣:

{
"fullname": "Sean Kelly",
"org": "SK Consulting",
"emailaddrs": [
{"type": "work", "value":http://www.cnblogs.com/smallcup/"},
{"type": "home", "pref": 1, "value": "http://www.cnblogs.com/smallcup/"}
],
"teleph [
{"type": "work", "pref": 1, "value": "+1 214 555 1212"},
{"type": "fax", "value": "+1 214 555 1213"},
{"type": "mobile", "value": "+1 214 555 1214"}
],
"addresses": [
{"type": "work", "format": "us",
"value": "1234 Main StnSpringfield, TX 78080-1216"},
{"type": "home", "format": "us",
"value": "5678 Main StnSpringfield, TX 78080-1316"}
],
"urls": [
{"type": "work", "value": "http://www.cnblogs.com/smallcup/"},
{"type": "home", "value": "http://www.cnblogs.com/smallcup/"}
]
}

正如你所見,JSON也提供了一種具有嵌套數據元素的結構,就象XML一樣。與XML一樣,JSON也是基 於文本的,且它們都使用Unicode編碼,且其與XML一樣具有可讀性。主觀上來看,JSON更為清晰且冗余更少些。JSON網站提供了對JSON語法 的嚴格描述,只是描述較簡短。從總體來看,XML比較適合於標記文檔,而JSON卻更適於進行數據交換處理。一個JSON文檔的每一個實例都負責描述一個對象—具體的描述是通過使用嵌套的對象,數組,字符串,數字,布爾值或null值來實現的。

下面比較一下兩者的平衡度:

  • 可讀性  JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規范的標簽形式,很難分出勝負。
  • 可擴展性 XML天生有很好的擴展性,JSON當然也有,沒有什么是XML能擴展,JSON不能的。
  • 編碼難度 XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多。
  • 解碼難度 XML的解析得考慮子節點父節點,讓人頭昏眼花,而JSON的解析難度幾乎為0。這一點XML輸的真是沒話說。
  • 流行度  XML已經被業界廣泛的使用,而JSON才剛剛開始,但是在Ajax這個特定的領域。

JSON的基本思想是,把自己實現為JavaScript(和Pyth 2.0開發中XML數據操作的主要替代者)。任何開發者,無論是開發標准桌面應用程序還是開發Web應用程序,只要使用XML數據處理,都會欣賞JSON的簡易特征。最后祝願大家能更好的理解使用Json。

(說明:本文由作者自己通過自己的學習和對各位前輩的總結寫的這邊文章)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM