JSON介紹

本文轉載自: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引入。個人見解。


發佈了23 篇原創文章 · 獲贊 23 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章