json parse和eval

json的解析方法共有两种:eval() 和 JSON.parse()javascript

例子:java

1 var value = 1;
2 var jsonstr = '{"data1":"hello","data2":++value}';
3 var data1 = eval_r('('+jsonstr+')');
4 console.log(data1);//这时value值为2var data2=JSON.parse(jsonstr);
5 console.log(data2);//报错

 

在代码中使用eval是很危险的,特别是用它执行第三方的JSON数据(其中可能包含恶意代码)时,尽量使用JSON.parse()方法解析字符串自己。json

该方法能够捕捉JSON中的语法错误,并容许你传入一个函数,用来过滤或转换解析结果。若是此方法以备Firfox 3.5 、IE8 及 Safari 4 原生支持。函数

大多数javascript类库包含的JSON解析代码会直接调用原生版本,若是没有原生支持的话,会调用一个略微不那么强大的非原生版原本处理。spa

 

只有在json.parse解析不了且必定要解析的状况下才不得不考虑使用eval().code

相关文章
相关标签/搜索