JSON在Javascript中的使用(eval和JSON.parse的区别)
2017-09-04 22:33
363 查看
JSON 和XML比较
json的长度和xml比起来更加短小
json读取速度更快
json可以使用javascript的内置方法直接进行解析,转化成Javascript对象,非常方便。
在Javascript使用eval将接送转化为json对象
在Javascript使用JSON.parse将接送转化为json对象
但是eval方法很不安全,例如:
将age的值换成了Javascript代码,依然可以解析,加入有人恶意修改这个代码,那么就会造成严重后果。
但是JSON.parse不同
浏览器会检查出json中的不合理的代码,并报告错误
所以推荐使用JSON.parse
json的长度和xml比起来更加短小
json读取速度更快
json可以使用javascript的内置方法直接进行解析,转化成Javascript对象,非常方便。
在Javascript使用eval将接送转化为json对象
var jsonData = '{"persons":{"name":"成龙","age":58},{"name":"吴京","age":33},"name":"甄子丹","age":44}'; var jsonObj = eval('('+jsonData+')'); //访问json对象数组的第一个对象的name属性 console.log(jsonObj.persons[0].name);
在Javascript使用JSON.parse将接送转化为json对象
var jsonData = '{"persons":{"name":"成龙","age":58},{"name":"吴京","age":33},"name":"甄子丹","age":44}'; var jsonObj = JSON.parse(jsonData); //访问json对象数组的第一个对象的name属性 console.log(jsonObj.persons[0].name);
但是eval方法很不安全,例如:
var jsonData = '{"persons":{"name":"成龙","age":window.alert(123)},{"name":"吴京","age":33},"name":"甄子丹","age":44}'; var jsonObj = eval('('+jsonData+')'); //访问json对象数组的第一个对象的name属性 console.log(jsonObj.persons[0].name);
将age的值换成了Javascript代码,依然可以解析,加入有人恶意修改这个代码,那么就会造成严重后果。
但是JSON.parse不同
var jsonData = '{"persons":{"name":"成龙","age":window.alert(123)},{"name":"吴京","age":33},"name":"甄子丹","age":44}'; var jsonObj = JSON.parse(jsonData); //访问json对象数组的第一个对象的name属性 console.log(jsonObj.persons[0].name);
浏览器会检查出json中的不合理的代码,并报告错误
所以推荐使用JSON.parse
相关文章推荐
- JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
- javascript JSON.parse() JSON.stringify() 和jquery.parseJOSN() 使用与区别
- javascript中JSON.parse()与eval()解析json的区别
- javascript中JSON.parse()与eval()解析json的区别
- 【javascript】javascript中JSON.parse()与eval()区别
- JavaScript的Eval与JSON.parse的区别
- javascript中JSON.parse()与eval()解析json的区别
- JSON.stringify()、,JSON.eval(),JSON.parse()各自的区别于作用
- eval、json.parse()的介绍和使用注意点
- JSON.parse()和eval()区别
- JSON.parse和eval的区别(转)
- 使用javascript的eval函数解析json字符串,提示“not avalible”怎么办?
- JSON.parse和eval的区别
- Js中JSON.stringify()与JSON.parse()与eval()详解及使用案例
- JSON.parse和eval的区别
- JSON.parse()和eval()的区别
- JSON.stringify()、eval(),JSON.parse()各自的区别于作用
- eval、json.parse()的介绍和使用注意点
- eval、json.parse()的介绍和使用注意点
- JSON.parse()和eval()的区别