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 相关文章推荐
优化 JavaScript 代码的方法小结
Jul 16 Javascript
jquery下异步提交表单 异步跨域提交表单
Nov 17 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
Dec 08 Javascript
js小数计算小数点后显示多位小数的实现方法
May 30 Javascript
jquery插件bootstrapValidator数据验证详解
Nov 09 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
Dec 13 Javascript
关于iframe跨域POST提交的方法示例
Jan 15 Javascript
codeMirror插件使用讲解
Jan 16 Javascript
javascript数据结构中栈的应用之符号平衡问题
Apr 11 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
JS中Attr的用法详解
Oct 09 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 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 Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
phpize的深入理解
2013/06/03 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
php文件上传简单实现方法
2015/01/24 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python 时间处理datetime实例
2008/09/06 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
python生成特定分布数的实例
2019/12/05 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
设计总监岗位职责
2013/12/07 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
家长对学生的评语
2014/04/18 职场文书
参赛口号
2014/06/16 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书