JavaScript中解析JSON数据的三种方法


Posted in Javascript onJuly 03, 2015

概述

现在JSON格式在web开发中越来越受重视,特别是在使用ajax开发项目的过程中,经常需要将json格式的字符串返回到前端,前端解析成JS对象(JSON )。
ECMA-262(E3)中没有将JSON概念写到标准中,还好在 ECMA-262(E5)中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。
解析JSON数据的三种方法

eval()方法

解析JSON数据的最常用方法是使用javascript的eval()方法,代码如下:

function toJson(str){

 var json = eval('(' + str + ')');

 return json;

}

该方法存在性能和安全方面的问题,不建议使用。
new Function方法
function toJson(str){

 var json = (new Function("return " + str))();

 return json;

}

JSON.parse()方法
这种方法只支持IE8/Firefox3.5+/Chrome4/Safari4/Opera10 以上版本,这些浏览器都已经接近W3C标准,默认实现了toJSON方法。
function toJson(str){

 return JSON.parse(str);

}

json2.js会在浏览器原生支持JSON.parse的时候选用原生版本,而且它跟ES5是API兼容的。在ES5还没完全普及的现状下,John Resig大神推荐用json2.js主要是为了现在就能用跟ES5兼容的API,日后能平滑过渡到ES5——只要去掉一个import就换过来了。
Javascript 相关文章推荐
用jquery来定位
Feb 20 Javascript
Angular Js文件上传之form-data
Aug 28 Javascript
JS中多种方式创建对象详解
Mar 22 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
May 11 Javascript
Bootstrap开发实战之响应式轮播图
Jun 02 Javascript
js操作DOM--添加、删除节点的简单实例
Jul 08 Javascript
JavaScript中关于iframe滚动条的去除和保留
Nov 17 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
Aug 21 Javascript
微信小程序 scroll-view实现锚点滑动的示例
Dec 06 Javascript
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
ES11屡试不爽的新特性,你用上了几个
Oct 21 Javascript
vue实现简单数据双向绑定
Apr 28 Vue.js
一张Web前端的思维导图分享
Jul 03 #Javascript
JavaScript中的对象与JSON
Jul 03 #Javascript
javascript生成大小写字母
Jul 03 #Javascript
jQuery切换所有复选框选中状态的方法
Jul 02 #Javascript
javascript带回调函数的异步脚本载入方法实例分析
Jul 02 #Javascript
javascript 闭包详解
Jul 02 #Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 #Javascript
You might like
广播爱好者需要了解的天线知识
2021/03/01 无线电
PHP mkdir()定义和用法
2009/01/14 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
Express.JS使用详解
2014/07/17 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
如何利用python发送邮件
2020/09/26 Python
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
如何安装ruby on rails
2014/02/09 面试题
求职简历自荐信
2014/06/18 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
白鹤梁导游词
2015/02/06 职场文书
幼儿园个人总结
2015/02/28 职场文书
单位收入证明范本
2015/06/18 职场文书
旅行社计调工作总结
2015/08/12 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis