JSON的初步认识

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}

 

posted @ 2018-10-23 16:58  真的想不出来  阅读(257)  评论(0编辑  收藏  举报