eval()和json.parse()的区别
来源:互联网 发布:ubuntu开机自启动mongo 编辑:程序博客网 时间:2024/06/09 18:22
我们很多时候都会使用ajax技术从后端和获取想要的数据去渲染页面,而我们解析从后台传来的json对象有两种方法:eval(),JSON.parse()
假设我们现在有一个json格式的字符串:
{ "people" : [ {"name":"张三","age":11}, {"name":"李四","age":11}, {"name":"王五","age":11} ]}
接下来,我们用这两种方法将它解析成json对象:第一种方式:eval();
var data='{"student":[{"name":"张三","age":"11"},{"name":"李四","age":"11"},{"name":"王五","age":"11"}]}’;
eval(’(“+data+”)’);
第二种方式:JSON.parse();
var data='{"student":[{"name":"张三","age":"11"},{"name":"李四","age":"11"},{"name":"王五","age":"11"}]}’;
JSON.parse(data);
区别:eval方法不会去检查给的字符串时候符合json的格式~同时如果给的字符串中存在js代码eval也会一并执行~比如:
var data='{"student":[{"name":"张三","age":"11"},{"name":"李四","age":"alert(11)"},{"name":"王五","age":"11"}]}’;
此时执行eval方法后会先弹出一个提示框输出11的字符串;
这时候使用JSON.parse()就会报错,显示错误信息为当前字符串不符合json格式;即JSON.parse()方法会检查需要转换的字符串是否符合json格式.
相比而言eval方法是很不安全,特别是当涉及到第三方时我们需要确保传给eval的参数是我们可以控制的,不然里面插入比如window.location~指向一个恶意的连接
总的来说,还是推荐使用JSON.parse来实现json格式字符串的解析。
- 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()的区别
- JSON.parse()与eval()之间的区别
- JSON.parse()与eval()函数的区别
- JSON.parse与eval的区别
- eval()和JSON.parse()
- eval和json.parse的使用
- JSON.parse 和eval的对比
- nutz从eclipse转idea的问题总结
- 表变量与临时表对比(2)
- Python爬虫入门-scrapy爬取唯一图库高清壁纸
- 管理和维护表
- JAVA常见问题解决办法汇总
- eval()和json.parse()的区别
- 【特斯拉组件】iOS高性能PageController
- 用struts标签完成一个注册页面
- 学习总结6
- python 操作Excel openpyxl的使用
- in运算符-----js
- 堆排序
- eclipse中mybatis generator插件离线安装方法
- 项目管理工具——GitHub