失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > javascript中JSON.parse()与eval()解析json的区别【javascript】

javascript中JSON.parse()与eval()解析json的区别【javascript】

时间:2019-02-13 21:15:19

相关推荐

javascript中JSON.parse()与eval()解析json的区别【javascript】

web前端|js教程

javascript,JSON.parse(),eval(),解析json,区别

web前端-js教程

asp订单源码,vscode安装吗,ubuntu怎样分配硬盘空间,tomcat 变慢原因,sqlite如何支持事务,wordpress 插件,前端框架选项卡,爬虫下载网络文件,php echo 输出,seo站内优化怎么做seo,卖网站源码的网站,易语言如何播放网页音乐播放器,帝国 封面模板,有关小程序的网站源码lzw

JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是Javascript原生格式,这意味着在javascript中处理JSON数据

手机怎么查看html源码,vscode 垂直编辑,ubuntu 无盘启动,tomcat公司源码,php不内置sqlite,jquery写的日期输入框插件包括时分秒,前端框架图形化,爬虫常用策略,php 嵌套if,刷搜狗seo软件,java原创文学网站源码,网页介绍模板免费下载,前端注册表单模板下载,注册页面进度条实现,jtbc网站内容管理系统,易语言收费程序源码lzw

基本格式:

足球系统 源码,vscode快速输入符号,ubuntu难用吗,tomcat图片显示路径,章鱼爬虫,php 获取客户端信息,南通seo哪个公司好,asp宽屏网站免费源码,jsp商城模板项目lzw

varjsonData={"data1":"Hello,","data2":"world!"}

调用方法jsonData.data1,jsonData.data2

很多json数据存入数组

var jsonData=[ {"name":"LiLei","age":19,"sex":"male"}, {"name":"HanMei","age":18,"sex":"famale"}]

调用方法jsonData[0].name,jsonData[1].sex

总体而言,json是相对比较容易的理解和使用的,但同时存在很多的陷阱,如果不注意的话很容易掉进去。

json的的解析方法

json的解析方法共有两种:eval() 和 JSON.parse(),使用方法如下:

var jsonData = {"data1":"Hello,", "data2":"world!};var evalJson=eval((+jsonData+));var jsonParseJson=JSON.parse(jsonData);

这样就把jsonData这个json格式的字符串转换成了JSON对象。

二者的区别如下:

var value = 1;var jsonstr = {"data1":"hello","data2":++value};var data1 = eval_r((+jsonstr+));console.log(data1);//这时value值为2var data2=JSON.parse(jsonstr);console.log(data2);//报错

可以看到控制输出台的结果,第一个eval()顺利执行,第二个报错了。从上例就可以明显地看出,eval在解析字符串时,会执行该字符串中的代码(这样的后果是相当恶劣的),如上例中,由于用eval解析一个json字符串而造成原先的value的值改变。

《高性能Javascript》(本站下载地址:/books/36680.html)一书即指出:

警告:关于JSON和eval需要注意的是:在代码中使用eval是很危险的,特别是用它执行第三方的JSON数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身。该方法可以捕捉JSON中的语法错误,并允许你传入一个函数,用来过滤或转换解析结果。如果此方法以备Firfox 3.5 、IE8 及 Safari 4 原生支持。大多数javascript类库包含的JSON解析代码会直接调用原生版本,如果没有原生支持的话,会调用一个略微不那么强大的非原生版本来处理。

更多关于JavaScript相关内容可查看本站专题:《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

如果觉得《javascript中JSON.parse()与eval()解析json的区别【javascript】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。