JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
发布时间 - 2026-01-11 03:06:34 点击率:次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
PS:下面在单独介绍下eval()和JSON.parse()的区别
我们将一个字符串解析成json对象时可以使用两种方法:
假设我们有一个json格式的字符串:
'{
"student" : [
{"name":"鸣人","age":17},
{"name":"小樱","age":17},
{"name":"佐助","age":17}
]
}'
然后我们需要把它解析成json对象
1、eval()代码如下:
var data = '{"student" : [{"name":"鸣人","age":17}, {"name":"小樱","age":17},{"name":"佐助","age":17}]}';
eval('(' + data + ')');
2、JSON.parse()代码如下:
var data = '{"student" : [{"name":"鸣人","age":17}, {"name":"小樱","age":17},{"name":"佐助","age":17}]}';
JSON.parse(data);
区别:eval方法不会去检查给的字符串时候符合json的格式~同时如果给的字符串中存在js代码eval也会一并执行~比如如果上面的json格式的字符串改为:(注意红色部分)
var data = '{"student" : [{"name":"鸣人","age":17}, {"name":"小樱","age":alert("hehe")},{"name":"佐助","age":17}]}';
此时执行eval方法后会先弹出一个提示框输出hehe的字符串~
但是使用JSON.parse()就会报错~显示错误信息为当前字符串不符合json格式~即JSON.parse()方法会检查需要转换的字符串是否符合json格式~
相比较而言eval方法是很危险的~特别是当涉及到第三方时我们需要确保传给eval的参数是我们可以控制的~不然里面插入比如window.location~指向一个恶意的连接~那叫叫天啦
从这个层面讲~还是推荐使用JSON.parse来实现json格式字符串的解析
考虑到我们在制造json格式的字符串时极易出现错误~这里推荐一个json格式字符串的在线校验工具:http://jsonlint.com/
# eval
# json.parse
# json
# js使用
# javascript中JSON.parse()与eval()解析json的区别
# 深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
# java中的JSONP使用实例详解
# ASP.NET core Web中使用appsettings.json配置文件的方法
# jQuery Ajax前后端使用JSON进行交互示例
# Spring Boot使用FastJson解析JSON数据的方法
# jquery使用EasyUI Tree异步加载JSON数据(生成树)
# java使用FastJson解析Json数据
# 成龙
# 第一个
# 鸣人
# 佐助
# 小樱
# 就会
# 推荐使用
# 可以使用
# 转化为
# 也会
# 两种
# 把它
# 我们可以
# 弹出
# 考虑到
# 更快
# 不符合
# 涉及到
# 报错
# 会去
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在阿里云完成域名注册与建站?
php json中文编码为null的解决办法
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
历史网站制作软件,华为如何找回被删除的网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
中山网站制作网页,中山新生登记系统登记流程?
Laravel如何使用withoutEvents方法临时禁用模型事件
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
黑客入侵网站服务器的常见手法有哪些?
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
如何在Windows 2008云服务器安全搭建网站?
如何快速上传自定义模板至建站之星?
高端云建站费用究竟需要多少预算?
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
如何在建站宝盒中设置产品搜索功能?
JS经典正则表达式笔试题汇总
如何制作一个表白网站视频,关于勇敢表白的小标题?
phpredis提高消息队列的实时性方法(推荐)
Laravel storage目录权限问题_Laravel文件写入权限设置
如何彻底卸载建站之星软件?
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
Thinkphp 中 distinct 的用法解析
北京专业网站制作设计师招聘,北京白云观官方网站?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Laravel如何使用Livewire构建动态组件?(入门代码)
Laravel如何处理表单验证?(Requests代码示例)
如何快速搭建个人网站并优化SEO?
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Android中AutoCompleteTextView自动提示
Linux安全能力提升路径_长期防护思维说明【指导】
如何登录建站主机?访问步骤全解析
EditPlus 正则表达式 实战(3)
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
C语言设计一个闪闪的圣诞树
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
Java遍历集合的三种方式
微信小程序 配置文件详细介绍
网页制作模板网站推荐,网页设计海报之类的素材哪里好?

