###JSON数据格式 不是一种数据类型 而是一种数据格式 是一种先后端交互时经常使用的数据格式json
属性名和属性值都是双引号 若属性值是一个数字能够不用双引号包裹后端
JSON格式的字符串和JSON格式的对象互转 Window对象上提供了JSON的对象浏览器
window.JSON.stringfy()方法 把JSON格式的对象转成JSON格式的字符串bash
window.JSON.parse()方法 把JSON格式的字符串转成JSON格式的对象 window 对象上的方法调用时 能够省略window IE6/7 没有 JSON 对象,在低版本浏览器将 JSON 字符串 转换为 JSON 对象须要使用 eval 方法ui
let str5 = '{"name": "珠峰", "id": 1, "age": 18}';
// let obj4 = eval(str5);
// console.log(obj4); // 报错:Unexpected token。。
复制代码
报错的缘由是 eval 把字符串转成代码执行,当遇到对象的花括号时,eval 会首先认定花括号是代码块,而不是对象;为了解决这个问题,咱们须要给字符串外面多拼接一层小括号;spa
let obj5 = eval('(' + str5 + ')');
console.log(obj5); // 加小括号后eva会把({...})当成一个对象
复制代码
/** desc
* @desc JSON字符串转JSON
*@param jsonstr json格式字符串
*@returns json格式对象
*/
function toJSon(jsonstr){
if('JSON' in window){
return JSON.parse(jsonstr);
}else{
return eval('('+jsonstr + ')')
}
}
复制代码