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 相关文章推荐
js使用removeChild方法动态删除div元素
Aug 01 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
Aug 25 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
Mar 03 Javascript
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 Javascript
js实现通过开始结束控制的计时器
Feb 25 Javascript
小程序组件之自定义顶部导航实例
Jun 12 Javascript
vue项目从node8.x升级到12.x后的问题解决
Oct 25 Javascript
Vue路由的模块自动化与统一加载实现
Jun 05 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
Aug 22 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
PHP反向代理类代码
2014/08/15 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
解析Python中的异常处理
2015/04/28 Python
Python实现的最近最少使用算法
2015/07/10 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
Python标准库itertools的使用方法
2020/01/17 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
工厂仓管员岗位职责
2014/01/01 职场文书
翻译学院毕业生自荐书
2014/02/02 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
业务员岗位职责
2015/02/03 职场文书
信仰观后感
2015/06/03 职场文书