1. JSON的定義:
一種輕量級的數據交換格式,具有良好的可讀和便於快速編寫的特性。業內主流技術為其提供了完整的解決方案(有點類似於正則表達式,獲得了當今大部分語言的支持),從而可以在不同平台間進行數據交換。JSON采用兼容性很高的文本格式,同事也具備類似於C語言體系的行為。
2. JSON VS XML
1). JSON和XML的書可讀性基本相同;
2). JSON和XML同樣擁有豐富的解析手段;
3). JSON相對於XML來講,數據的體積小;
4). JSON與JavaScript的交互更加方便;
5). JSON對數據的描述性比XML較差;
6). JSON的速度要遠遠快於XML;
7). JSON數據可使用AJAX進行傳輸;
8). JSON具有層級結構(值中存在值)
3. JSON語法規則
JSON語法是JavaScript對象表示法語法的子集。
1) 數據在名稱/值對中;
2) 數據由逗號分隔;
3) 花括號保存對象;
4) 方括號保存數組
4. JSON值
JSON值可以是:
1) 數字(證書或浮點數)
2) 字符串(在雙引號中)
3) 邏輯值(true或false)
4) 數組(在方括號中)
5) 對象(在花括號中)
6) null
5. JSON對象
JSON對象在花括號中書寫:
對象可以包含多個名稱/值對:
{"firstName":"John", "lastName":"Doe"}
6. JSON數組
JSON數組在方括號中書寫:
數組可包含多個對象:
{
"employees":[
{"firstName":"John", "lastName":"Doe"}
{"firstName":"Anna", "lastName":"Smith"}
{"firstName":"Peter", "lastName":"Jones"}
]
}
7. JSON使用JavaScript
因為JSON使用JavaScript語法,所以無需額外的軟件就能處理JavaScript中的JSON。
通過JavaScript,您可以創建一個對象數組,並像這樣進行賦值:
var employees = [
{"firstName":"Bill", "lastName":"Gates"}
{"firstName":"George", "lastName":"Bush"}
{"firstName":"Thomas", "lastName":"Carter"}
];
像這樣訪問JavaScript對象數組中的第一項:
employees[0].lastName;
修改數據:
employees[0].lastName="Jobs";
8. JSON文件
JSON文件的文件類型是".json"
JSON文本的MIME類型是"application/json"
9. 把JSON文本轉換為JavaScript對象
JSON最常見的用法之一,是從web服務器上讀取JSON數據(作為文件或作為HttpRequest),將JSON數據轉換為JavaScript對象,然后在網頁中使用該數據。
10. JSON實例-來自字符串的對象
創建包含JSON語法的JavaScript字符串
var txt = '{"employees":['+
' {"firstName":"Bill", "lastName":"Gates"}, ' +
' {"firstName":"George", "lastName":"Bush"}, '+
' {"firstName":"Thomas", "lastName":"Carter"} ]}';
由於JSON語法是JavaScript語法的子集,JavaScript函數eval()可用於將JSON文本轉換為JavaScript對象。
eval()函數使用的是JavaScript編譯器,可解析JSON文本,然后生成JavaScript對象。必須把文本包圍在括號中,這樣才能避免語法錯誤:
var obj=eval("("+ txt +")");
11. JSON解析器
提示:eval()函數可編譯並執行任何JavaScript代碼。這隱藏了一個潛在的安全問題。
使用JSON解析器將JSON轉換為JavaScript對象是更安全的做法。JSON解析器只能識別JSON文本,而不會編譯腳本。
在瀏覽器中,這提供了原生的JSON支持,而且JSON解析器的速度更快。
較新的瀏覽器和ECMAScript(JavaScript)標准中均包含了原生的對JSON的支持。
Web瀏覽器支持 | Web軟件支持 |
FireFox(Mozilla) 3.5 Internet Explorer 8 Chrome Opera 10 Safari 4 |
JQUery Yahoo UI Prototype Dojo ECMAScript 1.5
|