在前后端進行數據交互時,JSON是一個很好的數據格式:
前后臺交互的模型.png
JSON不是一個單獨的數據類型,它只是一種特殊的數據格式 -> 它是對象數據類型的。
var obj = {name: 'derrick', age: 20}; // -> 普通格式的對象
var jsonObj = {
"name": "derrick",
"age": 20
}; // -> JSON格式對象,相當于普通格式來說,只是把屬性名用雙引號包起來了(只能是雙引號,單引號不行)
在window瀏覽器對象中,提供了一個叫做JSON的屬性,它里面提供了兩個方法:
-
JSON.parse();
-> 把JSON格式的字符串轉換為JSON格式的對象 -
JSON.stringify();
-> 把JSON格式的對象轉換為JSON格式的字符串
var jsonStr = JSON.stringify(jsonObj); // // -> string
var str = jsonStr;
console.log(JSON.parse(str)); // -> obj
在IE6-7瀏覽器中,window下沒有JSON對象,剛才的parse和stringify都不存在了。
兼容寫法:
jsonParse: function (str) {
var val = null;
try {
val = JSON.parse(str);
} catch (e) {
val = eval('(' + str + ')');
}
return val;
}