JSON在Javascript中的使用(eval和JSON.parse的区别)
来源:互联网 发布:centos下安装jdk1.8 编辑:程序博客网 时间:2024/06/03 21:26
JSON 和XML比较
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
阅读全文
0 0
- JSON在Javascript中的使用(eval和JSON.parse的区别)
- JSON.parse和eval的区别
- JSON.parse和eval的区别
- JSON.parse和eval的区别
- JSON.parse()和eval()的区别
- JSON.parse()和eval()的区别
- JSON.parse和eval的区别
- JSON.parse和eval的区别
- JSON.parse和eval的区别
- JSON.parse()和eval()的区别
- JSON.parse和eval的区别
- JSON.parse和eval的区别
- eval()和json.parse()的区别
- javascript中JSON.parse()与eval()解析json的区别
- eval和json.parse的使用
- eval()和JSON.parse()
- JSON.parse()与eval()之间的区别
- JSON.parse()与eval()函数的区别
- 双目立体视觉知识分享~(一)
- HikariPool-1
- D3D 天空盒实现
- 嵌入式Linux入门10:应用层编程应用和分类
- How to Install Review Board on Ubuntu 16.04
- JSON在Javascript中的使用(eval和JSON.parse的区别)
- JavaScript总结2
- hdu 5769 后缀数组
- 一次完整的浏览器请求响应过程
- Bealegbone-black学习笔记
- HDU 3691 Nubulsa Expo
- 数据结构与算法 二分法查找【Python与C】的实现
- 经纬度的正则表达式
- DNS与TCP、UDP协议