本文轉載自:http://www.cnblogs.com/kuikui/p/3176806.html
JSON介紹
JSON定義
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。簡單地說,JSON 可以將 JavaScript 對象中表示的一組數據轉換爲字符串,然後就可以在函數之間輕鬆地傳遞這個字符串,或者在異步應用程序中將字符串從 Web 客戶機傳遞給服務器端程序。這個字符串看起來有點兒古怪,但是JavaScript很容易解釋它,而且 JSON 可以表示比"名稱 / 值對"更復雜的結構。
JSON 語法是 JavaScript 對象表示法語法的子集。
數據在名稱/值對中、數據由逗號分隔、花括號保存對象、方括號保存數組
JSON 值可以是:數字(整數或浮點數)、字符串(在雙引號中)、邏輯值(true 或 false)、數組(在方括號中)、對象(在花括號中)、null
例如:
{ "name":"小強", "age":16, "msg":["a","b"], "regex": "^http://.*" };
JSON.parse是將json格式的字符串轉換成json對象。
var str ='{"name":"小強","age":16,"msg":["a","b"],"regex": "^http://.*"}'; var json = JSON.parse(str); console.log("name:" + json.name); console.log("msgLen:" + json.msg.length); // 結果 // name:小強 // msgLen:2
備註:單引號寫在{}外,每個屬性名都必須用雙引號。
JSON.stringify是將json對象轉換成json格式的字符串。
var json = {"name":"小強","age":16,"msg":["a","b"],"regex": "^http://.*"}; var str = JSON.stringify(json); console.log("json:" + str); console.log("jsonLen:" + str.length); // 結果 // json:{"name":"小強","age":16,"msg":["a","b"],"regex":"^http://.*"} // jsonLen:60
備註:JSON.parse和JSON.stringify支持IE8及其以上版本
將JSON轉換成數組
function jsonToArray(obj){ var r = {key:[],value:[]}; for(var k in obj){ if(!obj.hasOwnProperty(k)){ continue; } r.key.push(k); r.value.push(obj[k]); } return r; } var json = {"name":"小強","age":16,"msg":["a","b"],"regex": "^http://.*"}; var arrJson = jsonToArray(json); console.log("regexKEY:" + arrJson.key[3]); console.log("regexVALUE:" + arrJson.value[3]); console.log("KEYLen:" + arrJson.key.length); // 結果 // regexKEY: regex // regexVALUE: ^http://.* // KEYLen:4
關於IE低版本可以使用插件
json官網:http://www.json.org/json-zh.html
題外話:IE低版本的瀏覽器使用率越來越少,建議兼容IE低本的腳本單獨提出來,將兼容性代碼抽離出來。用IE註釋來判斷是否引入js插件,js插件最好與標準名稱一致,如低版本中引入JSON這個變量,也有個方法JSON.parse等等。可以改善以前的兼容性代碼處理方式,將IE那部分的都轉成W3C標準事件處理函數,單獨爲IE引入。個人見解。