JSON中eval与parse的区别

Posted Alley-巷子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON中eval与parse的区别相关的知识,希望对你有一定的参考价值。

json的的解析方法 (非原创)

json的解析方法共有两种:eval_r() 和 JSON.parse(),使用方法如下:

var jsonData = ‘{"data1":"Hello,", "data2":"world!}‘;

var evalJson=eval_r(‘(‘+jsonData+‘)‘);

var jsonParseJson=JSON.parse(jsonData);

这样就把jsonData这个json格式的字符串转换成了JSON对象。

二者的区别如下:

var value = 1;

var jsonstr = ‘{"data1":"hello","data2":++value}‘;

var data1 = eval_r(‘(‘+jsonstr+‘)‘);console.log(data1);//这时value值为2vardata2=JSON.parse(jsonstr);console.log(data2);//报错

技术分享

技术分享可以看到控制输出台的结果,第一个eval_r()顺利执行,第二个报错了。

从上例就可以明显地看出,eval在解析字符串时,会执行该字符串中的代码(这样的后果是相当恶劣的),如上例中,由于用eval解析一个json字符串而造成原先的value的值改变。

以上是关于JSON中eval与parse的区别的主要内容,如果未能解决你的问题,请参考以下文章

JSON.parse与eval的区别

JSON.parse与eval的区别

javascript中JSON.parse()与eval()解析json的区别

Ajax请求 返回数据处理方法 JSON.parse( ) 与 eval( )的区别

JSON.parse()和eval()的区别

JSON.parse和eval的区别