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 foreach使用示例
Sep 12 Javascript
JavaScript中标识符提升问题
Jun 11 Javascript
详解AngularJS的通信机制
Jun 18 Javascript
jquery动态切换背景图片的简单实现方法
May 14 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
微信小程序 swiper组件详解及实例代码
Oct 25 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
Dec 12 Javascript
angularjs+bootstrap菜单的使用示例代码
Mar 07 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
Mar 23 jQuery
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
Aug 24 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
Apr 15 Javascript
一张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
PHP 中的一些经验积累
2006/10/09 PHP
destoon二次开发入门示例
2014/06/20 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
yii用户注册表单验证实例
2015/12/26 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
CI框架整合widget(页面格局)的方法
2016/05/17 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
java直接调用python脚本的例子
2014/02/16 Python
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
python__new__内置静态方法使用解析
2020/01/07 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
旅游管理毕业生自荐信范文
2014/03/19 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
幽灵公主观后感
2015/06/09 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
Python实现简单的猜单词
2021/06/15 Python