JSON.parse、JSON.stringify和eval的区别和作用

(1)JSON.parse() 函数
作用:将 JavaScript 对象表示法 (JSON) 字符串转换为对象。  
语法:JSON.parse(text [, reviver])
参数:
· text  必需。 一个有效的 JSON 字符串。
· reviver  可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。
返回值:一个对象或数组
example:
var json = ‘{“name”:“GDT”,“age”:23,“University”:“GDUT”}’;
var info = JSON.parse(json);  //解析为JSON对象
document.write(info.name + ’ is a student of ’ + info.University + ’ and he is ’ + info.age + " years old."); /info为Object对象

(2)JSON.stringify()函数
作用:将 JavaScript 值转换为 JavaScript 对象表示法 (JSON) 字符串
语法:JSON.stringify( value [, replacer] [, space])
参数:
· value  必需,通常为需要转换的JavaScript值(通常为对象或者数组)
· replacer  可选,用于转换结果的函数或者数组
· space  可选。向返回值 JSON 文本添加缩进、空格和换行符以使其更易于读取。
返回值:一个包含JSON文本的字符串
example:
var info = {name:“GDT”,age:23,University:“GDUT”};
var json = JSON.stringify(info); //转换为JSON字符串
document.write(json); //output为{“name”:“GDT”,“age”:23,“University”:“GDUT”}
  
(3)eval()函数
作用:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
语法:eval(string)
参数:
· string  必需,要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。
返回值:返回计算string的值,如果有的话 (没有则不做任何改变返回)
example:
eval(“x=10;y=20;document.write(x*y)”); //output为200
document.write(eval(“2+2”));  //output为4
var x=10;
document.write(eval(x+17));  //output为27

使用eval()函数也可以将JSON字符串解析为对象,这个功能能完成JSON.parse()的功能,但是有不一样的地方,请看下面代码

1 // JSON.parse()
2 var json = ‘{“name”:“GDT”,“age”:23,“University”:“GDUT”}’;
3 var info = JSON.parse(json);    //解析为JSON对象
4 document.write(info); //output为[object Object]
5
6 //eval()
7 var json = ‘{“name”:“GDT”,“age”:23,“University”:“GDUT”}’;
8 var info = eval(’(’ + json + ‘)’); //解析为JSON对象
9 document.write(info); //output为[object Object](1)JSON.parse() 函数
作用:将 JavaScript 对象表示法 (JSON) 字符串转换为对象。  
语法:JSON.parse(text [, reviver])
参数:
· text  必需。 一个有效的 JSON 字符串。
· reviver  可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。
返回值:一个对象或数组
example:
1 var json = ‘{“name”:“GDT”,“age”:23,“University”:“GDUT”}’;
2 var info = JSON.parse(json);  //解析为JSON对象
3 document.write(info.name + ’ is a student of ’ + info.University + ’ and he is ’ + info.age + " years old."); /info为Object对象

(2)JSON.stringify()函数
作用:将 JavaScript 值转换为 JavaScript 对象表示法 (JSON) 字符串
语法:JSON.stringify( value [, replacer] [, space])
参数:
· value  必需,通常为需要转换的JavaScript值(通常为对象或者数组)
· replacer  可选,用于转换结果的函数或者数组
· space  可选。向返回值 JSON 文本添加缩进、空格和换行符以使其更易于读取。
返回值:一个包含JSON文本的字符串
example:
1 var info = {name:“GDT”,age:23,University:“GDUT”};
2 var json = JSON.stringify(info); //转换为JSON字符串
3 document.write(json); //output为{“name”:“GDT”,“age”:23,“University”:“GDUT”}
  
(3)eval()函数
作用:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
语法:eval(string)
参数:
· string  必需,要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。
返回值:返回计算string的值,如果有的话 (没有则不做任何改变返回)
example:
1 eval(“x=10;y=20;document.write(x*y)”); //output为200
2 document.write(eval(“2+2”));  //output为4
3 var x=10;
4 document.write(eval(x+17));  //output为27

使用eval()函数也可以将JSON字符串解析为对象,这个功能能完成JSON.parse()的功能,但是有不一样的地方,请看下面代码

1 // JSON.parse()
2 var json = ‘{“name”:“GDT”,“age”:23,“University”:“GDUT”}’;
3 var info = JSON.parse(json);    //解析为JSON对象
4 document.write(info); //output为[object Object]
5
6 //eval()
7 var json = ‘{“name”:“GDT”,“age”:23,“University”:“GDUT”}’;
8 var info = eval(’(’ + json + ‘)’); //解析为JSON对象
9 document.write(info); //output为[object Object]

原文地址:https://www.cnblogs.com/konglxblog/p/10156450.html