1、什麼是JSON?javascript
JSON 英文全稱 JavaScript Object Notation,JSON 是用於存儲和傳輸數據的格式。JSON 最多見的用法是從 web 服務器上讀取 JSON 數據,將 JSON 數據轉換爲 JavaScript 對象,而後在網頁中使用該數據。java
JSON簡單說就是javascript中的對象和數組,JSON的就由對象和數組構成,經過這兩種結構能夠表示各類複雜的數據。web
一、對象數組
JavaScript 對象是擁有屬性和方法的數據。在 JavaScript中,幾乎全部的事物都是對象。對象也是一個變量,但對象能夠包含多個值(多個變量)。能夠說 "JavaScript 對象是變量的容器"。
建立 JavaScript 對象:瀏覽器
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
二、數組安全
數組對象是使用單獨的變量名來存儲一系列的值。數組也是一種對象。服務器
建立一個數組:(方法之一)函數
var myCars=["Saab","Volvo","BMW"];
2、JSON 語法規則spa
建立一個JSON:code
var txt = '{ "employees" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}';
3、JSON→Javascript轉換
JSON 轉換爲 JavaScript 對象有2個方法,一是JavaScript 函數 eval() ,二是JSON 解析器:JSON.parse()。
一、eval() 函數
語法:
eval(string)
因爲eval的參數是字符串,必須把文本包圍在括號中,這樣才能避免語法錯誤:
var obj = eval ("(" + txt + ")");
而不是
var obj = eval (txt);
二、JSON.parse()
var obj = JSON.parse(text);
eval() 函數使用的是 JavaScript 編譯器,它可編譯並執行任何 JavaScript 代碼。這隱藏了一個潛在的安全問題,因此更安全的作法是使用JSON.parse()。
JSON 解析器只能識別 JSON 文本,而不會編譯腳本,並且 JSON 解析器的速度更快。缺點是一些較老的瀏覽器並不原生的JSON 支持。