JSON 解析
两种方式
- eval()
- JSON.parse()
在代码中使用eval()是十分危险的!特别是用它执行第三方的JSON数据(因为eval在解析JSON字符串的同时,也会执行JSON字符串中的方法。其中可能包含恶意代码),尽可能使用JSON.parse()方法解析字符串本身,同时,该方法还可以捕捉JSON语法中的错误。
//eval()解析JSON字符串时,会执行JSON字符串中的alert()方法
var jsondata ='{"players":[{"fristname":"Kobe","lastname":alert("Bryant")},{"fristname":"Michael","lastname":"Jordan"},{"fristname":"Tracy","lastname":"McGrady"}]}';
var jsonobj =eval('('+jsondata+')');
alert (jsonobj.players[1].lastname);
//同样的JSON字符串用JSON.parse()解析会报错
var jsondata ='{"players":[{"fristname":"Kobe","lastname":alert("Bryant")},{"fristname":"Michael","lastname":"Jordan"},{"fristname":"Tracy","lastname":"McGrady"}]}';
var jsonobj =JSON.parse(jsondata);
alert (jsonobj.players[1].lastname);
ps:在浏览器中,F12调试模式下可在控制台直接运行代码
JSON 校验
- 在线校验工具:jsonlint.com
简例应用
- 设置前端和服务器交互的状态和返回信息
{
"success":true,
"msg":"xxx"
}