我们将一个josn字符串解析为对象的时可以使用两种方法:
假设有一个json字符串:
'{
"student" : [
{"name":"zs","age":},
{"name":"ls","age":},
{"name":"ww","age":}
]
}'
然后解析为对象:
1、eval()代码如下:
var data = '{"student" : [{"name":"zs","age":17}, {"name":"ls","age":17},{"name":"ww","age":17}]}';
eval('(' + data + ')');
2、JSON.parse()代码如下:
var data = '{"student" : [{"name":"zs","age":17}, {"name":"ls","age":17},{"name":"ww","age":17}]}';
JSON.parse(data);
区别:JSON.parse()会检查给的字符串是否符合json格式,eval方法不会去检查;
var data = '{"student" : [{"name":"zs","age":17}, {"name":"ls","age":alert("hehe")},{"name":"ww","age":17}]}';
执行eval方法后会先弹出一个提示框输出hehe的字符串,
但是使用JSON.parse()就会报错~显示错误信息为当前字符串不符合json格式,即JSON.parse()方法会检查需要转换的字符串是否符合json格式
相比较而言eval方法是很危险的,还是推荐使用JSON.parse来实现json格式字符串的解析