JavaScript Object Notation(或 JSON),即一種開放式和基於文本的資料交換格式,它提供了一種標準資料交換格式,更適用於 Ajax 樣式的 Web 應用程式。
JSON: http://www.json.org/
Jayrock是一個LGPL的開源的軟體,實現了JSON和JSON-RPC,支援微軟ASP.NET架構。
JSON+Jayrock+ASP.NET Quick Start :http://jayrock.berlios.de/#quick-start
JavaScript 和 .NET 中的 JavaScript Object Notation (JSON) 簡介
特點:簡單格式化的資料交換
2、易於人們的讀寫習慣
3、易於機器的分析和運行
4、JavaScript中使用eval()方法可以很方便的讀取 JSON資料
5、JSON支援的語言ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.
文法分析:JSON可以用於封裝資料,它是一種類似於C語言家族的語言,所以能很容易被C語言家族的語言分析
1、對象object包含在一對{}中,如:
2、對象的屬性member使用[string : value]成對的表示,屬性與屬性之間用逗號隔開,如:
string : value , string : value
3、數組array包含在一對[]中,如:
[ elements ]
4、元素elements與元素之間用逗號隔開
elements , elements
5、元素值可具有的類型:
string, number, object, array, true, false, null
例子:
JSON
{"menu": {
"id": "file",
"value": "File:",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
XML
<menu id="file" value="File" >
<popup>
<menuitem value="New" onclick="CreateNewDoc()" />
<menuitem value="Open" onclick="OpenDoc()" />
<menuitem value="Close" onclick="CloseDoc()" />
</popup>
</menu>
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)了。