Json學習筆記

JSON:JavaScript 對象表示法(JavaScript Object Notation)。web

JSON 是存儲和交換文本信息的語法。相似 XML。json

JSON 比 XML 更小、更快,更易解析。數組

 

JSON 語法規則

JSON 語法是 JavaScript 對象表示法語法的子集。瀏覽器

  • 數據在名稱/值對中
  • 數據由逗號分隔
  • 花括號保存對象
  • 方括號保存數組

 

JSON 文件

  • JSON 文件的文件類型是 ".json"
  • JSON 文本的 MIME 類型是 "application/json"

 

JSON 名稱/值對

JSON 數據的書寫格式是:名稱/值對。安全

名稱/值對包括字段名稱(在雙引號中),後面寫一個冒號,而後是值:服務器

"姓名" : "李明"

這很容易理解,等價於這條 JavaScript 語句:app

姓名 = "李明"

JSON 值

JSON 值能夠是:函數

  • 數字(整數或浮點數)
  • 字符串(在雙引號中)
  • 邏輯值(true 或 false)
  • 數組(在方括號中)
  • 對象(在花括號中)
  • null

Json格式數據表示方法工具

Json使用花括號表示對象,使用方括號表示數組。二則的組合能夠表述具備複雜結構的數據。spa

例如:

{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].姓名);        //讀取姓名

運行結果以下:

image image

因爲運行期間更改了第三個對象的姓名,因此李百變成了李白了。

 

把 JSON 文本轉換爲 JavaScript 對象

JSON 最多見的用法之一,是從 web 服務器上讀取 JSON 數據(做爲文件或做爲 HttpRequest),將 JSON 數據轉換爲 JavaScript 對象,而後在網頁中使用該數據。

 

解析Json

能夠使用eval()函數解析Json數據

示例代碼:

var str='[{ "姓名": "李明", "年齡": 18 },'+
            '{ "姓名": "李龍", "年齡": 19 },'+
        '{ "姓名": "李百", "年齡": 17 }]';
            var obj = eval(str);

運行結果以下(運行結果截圖是在IE11的開發人員工具裏的監視內容):

image

 

JSON 解析器

提示:eval() 函數可編譯並執行任何 JavaScript 代碼。這隱藏了一個潛在的安全問題。

使用 JSON 解析器將 JSON 轉換爲 JavaScript 對象是更安全的作法。JSON 解析器只能識別 JSON 文本,而不會編譯腳本。

在瀏覽器中,這提供了原生的 JSON 支持,並且 JSON 解析器的速度更快。

較新的瀏覽器和最新的 ECMAScript (JavaScript) 標準中均包含了原生的對 JSON 的支持。

Web 瀏覽器支持
Firefox (Mozilla) 3.5

  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4

Web 軟件支持

  • jQuery
  • Yahoo UI
  • Prototype
  • Dojo
  • ECMAScript 1.5
相關文章
相關標籤/搜索