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 相关文章推荐
Mootools 1.2教程 定时器和哈希简介
Sep 15 Javascript
基于jquery & json的省市区联动代码
Jun 26 Javascript
js复制网页内容并兼容各主流浏览器的代码
Dec 17 Javascript
写出高效jquery代码的19条指南
Mar 19 Javascript
js实现数组冒泡排序、快速排序原理
Mar 08 Javascript
解决jquery无法找到其他父级子集问题的方法
May 10 Javascript
Vue 实用分页paging实例代码
Apr 12 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
js实现文字列表无缝滚动效果
Jun 23 Javascript
小程序云开发之用户注册登录
May 18 Javascript
JavaScript canvas绘制圆弧与圆形
Feb 18 Javascript
Js类的构建与继承案例详解
Sep 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+DBM的同学录程序(1)
2006/10/09 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
PHP积分兑换接口实例
2015/02/09 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
Python如何判断数独是否合法
2016/09/08 Python
python http接口自动化脚本详解
2018/01/02 Python
详解python读取和输出到txt
2019/03/29 Python
Python语言进阶知识点总结
2019/05/28 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
python如何代码集体右移
2020/07/20 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
八年级美术教学反思
2014/02/02 职场文书
表演方阵解说词
2014/02/08 职场文书
贷款委托书范本
2014/04/08 职场文书
多媒体教室标语
2014/06/26 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
vscode中使用npm安装babel的方法
2021/08/02 Javascript
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA