在前后端进行数据交互时,JSON是一个很好的数据格式:
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;
}