JSON:JavaScript 對象表示法(JavaScript Object Notation)。web
JSON 是存儲和交換文本信息的語法。相似 XML。json
JSON 比 XML 更小、更快,更易解析。數組
JSON 語法是 JavaScript 對象表示法語法的子集。瀏覽器
JSON 數據的書寫格式是:名稱/值對。安全
名稱/值對包括字段名稱(在雙引號中),後面寫一個冒號,而後是值:服務器
"姓名" : "李明"
這很容易理解,等價於這條 JavaScript 語句:app
姓名 = "李明"
JSON 值能夠是:函數
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].姓名); //讀取姓名
運行結果以下:
因爲運行期間更改了第三個對象的姓名,因此李百變成了李白了。
JSON 最多見的用法之一,是從 web 服務器上讀取 JSON 數據(做爲文件或做爲 HttpRequest),將 JSON 數據轉換爲 JavaScript 對象,而後在網頁中使用該數據。
解析Json
能夠使用eval()函數解析Json數據
示例代碼:
var str='[{ "姓名": "李明", "年齡": 18 },'+ '{ "姓名": "李龍", "年齡": 19 },'+ '{ "姓名": "李百", "年齡": 17 }]'; var obj = eval(str);
運行結果以下(運行結果截圖是在IE11的開發人員工具裏的監視內容):
提示:eval() 函數可編譯並執行任何 JavaScript 代碼。這隱藏了一個潛在的安全問題。
使用 JSON 解析器將 JSON 轉換爲 JavaScript 對象是更安全的作法。JSON 解析器只能識別 JSON 文本,而不會編譯腳本。
在瀏覽器中,這提供了原生的 JSON 支持,並且 JSON 解析器的速度更快。
較新的瀏覽器和最新的 ECMAScript (JavaScript) 標準中均包含了原生的對 JSON 的支持。
Web 瀏覽器支持
Firefox (Mozilla) 3.5
Web 軟件支持