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 attachEvent和addEventListener使用方法
Mar 19 Javascript
javascript动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
jQuery图片预加载 等比缩放实现代码
Oct 04 Javascript
js函数获取html中className所在的内容并去除标签
Sep 08 Javascript
基于jQuery的图片不完全按比例自动缩小
Jul 11 Javascript
jQuery显示和隐藏 常用的状态判断方法
Jan 29 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
Apr 17 Javascript
ES6入门教程之let和const命令详解
May 17 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
js中json对象和字符串的理解及相互转化操作实现方法
Sep 22 Javascript
Vue中jsx不完全应用指南小结
Nov 01 Javascript
Node.js API详解之 string_decoder用法实例分析
Apr 29 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
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
jquery异步调用页面后台方法‏(asp.net)
2011/03/01 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
JS实现星星海特效
2019/12/24 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
Python编程pygal绘图实例之XY线
2017/12/09 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
pycharm显示远程图片的实现
2019/11/04 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
总经理年会致辞
2015/07/29 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server