標籤:style blog http io color ar 使用 java sp
JSON:JavaScript 物件標記法(JavaScript Object Notation)。
JSON 是儲存和交換文本資訊的文法。類似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON 文法規則
JSON 文法是 JavaScript 物件標記法文法的子集。
- 資料在成對的名稱和數值中
- 資料由逗號分隔
- 花括弧儲存對象
- 方括弧儲存數組
JSON 檔案
- JSON 檔案的檔案類型是 ".json"
- JSON 文本的 MIME 類型是 "application/json"
JSON 成對的名稱和數值
JSON 資料的書寫格式是:成對的名稱和數值。
成對的名稱和數值包括欄位名稱(在雙引號中),後面寫一個冒號,然後是值:
"姓名" : "李明"
這很容易理解,等價於這條 JavaScript 語句:
姓名 = "李明"
JSON 值
JSON 值可以是:
- 數字(整數或浮點數)
- 字串(在雙引號中)
- 邏輯值(true 或 false)
- 數組(在方括弧中)
- 對象(在花括弧中)
- null
Json格式資料表示方法
Json使用花括弧表示對象,使用方括弧表示數組。二則的組合可以表述具有複雜結構的資料。
例如:
{key:value,key2:value2}[1,2,3,4,4,4,4,5,6,76]
[{"姓名":"李明","年齡":18},{"姓名":"李龍","年齡":19},{"姓名":"李百","年齡":17}]
程式例子:
var myJson = [{ "姓名": "李明", "年齡": 18 }, { "姓名": "李龍", "年齡": 19 }, { "姓名": "李百", "年齡": 17 }]; alert(myJson[0].姓名); //讀取姓名 myJson[3].姓名 = "李白"; //修改姓名 alert(myJson[2].姓名); //讀取姓名
運行結果如下:
由於運行期間更改了第三個對象的姓名,所以李百變成了李白了。
把 JSON 文本轉換為 JavaScript 對象
JSON 最常見的用法之一,是從 網頁伺服器上讀取 JSON 資料(作為檔案或作為 HttpRequest),將 JSON 資料轉換為 JavaScript 對象,然後在網頁中使用該資料。
解析Json
可以使用eval()函數解析Json資料
範例程式碼:
var str=‘[{ "姓名": "李明", "年齡": 18 },‘+ ‘{ "姓名": "李龍", "年齡": 19 },‘+ ‘{ "姓名": "李百", "年齡": 17 }]‘; var obj = eval(str);
運行結果如下(運行結果是在IE11的開發人員工具裡的監視內容):
JSON 解析器
提示:eval() 函數可編譯並執行任何 JavaScript 代碼。這隱藏了一個潛在的安全問題。
使用 JSON 解析器將 JSON 轉換為 JavaScript 對象是更安全的做法。JSON 解析器只能識別 JSON 文本,而不會編譯指令碼。
在瀏覽器中,這提供了原生的 JSON 支援,而且 JSON 解析器的速度更快。
較新的瀏覽器和最新的 ECMAScript (JavaScript) 標準中均包含了原生的對 JSON 的支援。
網頁瀏覽器支援
Firefox (Mozilla) 3.5
- Internet Explorer 8
- Chrome
- Opera 10
- Safari 4
Web 軟體支援
- jQuery
- Yahoo UI
- Prototype
- Dojo
- ECMAScript 1.5
Json學習筆記