JSON
json是一种数据格式,它本质是字符串,长的像js中的对象。
一般json数据都是后端给的 '{"name":"诗进","age":18}' 或者 '[]'
`JSON.parse() ` 可以把JSON格式的数据转成js中的对象
( 高版本浏览器才能使用,低版本用json2.js)
例子:
1 let str = '{"name":"诗进","age":18}'; //(标准格式) 2 console.log(JSON.parse(str));//{name: "诗进", age: 18}
注意:
使用JSON.parse的时候必须保证json是标准格式的 key值必须有双引号,value值为字符串的也要为双引号 key值为单引号会报错。
/***************************************************************************************************************************************/
`eval()` 能够把字符串尽量转成js能够运行的代码
小技巧:
在使用eval传化json的时候,json用字符串括号包一下 eval('('+json+')')
注意:
eval是有可能被注入病毒的 new Function('','return'+json)(); 也能解决这个问题
例子:
1 let json = "{'name':'小明','age':18}"; //非标准json 2 console.log(eval('('+json+')')); //{name: "小明", age: 18}
4 let obj = new Function('','return'+json)(); 5 console.log(obj);//{name: "小明", age: 18}
/***************************************************************************************************************************************/
`JSON.stringify` 把对象转成标准json
注意:
undefined、函数是转不出来的.
例子:
1 let obj = {name:'小明','age':18,a:function(){},b:true}; 2 3 console.log(JSON.stringify(obj));//{"name":"小明","age":18,"b":true}