json的解析方法共有两种:eval() 和 JSON.parse()
例子:
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中的语法错误,并允许你传入一个函数,用来过滤或转换解析结果。如果此方法以备Firfox 3.5 、IE8 及 Safari 4 原生支持。
大多数javascript类库包含的JSON解析代码会直接调用原生版本,如果没有原生支持的话,会调用一个略微不那么强大的非原生版本来处理。
只有在json.parse解析不了且一定要解析的情况下才不得不考虑使用eval().