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 入门·JavaScript 具有全范围的运算符
Oct 01 Javascript
jquery 日期分离成年月日的代码
May 14 Javascript
JavaScript实现快速排序(自已编写)
Dec 19 Javascript
javascript面向对象之对象的深入理解
Jan 13 Javascript
JS简单编号生成器实现方法(附demo源码下载)
Apr 05 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
Jun 13 Javascript
简单实现js拖拽效果
Jul 25 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
Jul 24 Javascript
JS实现扫码枪扫描二维码功能
Jan 03 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
Javascript实现打鼓效果
Jan 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
PHP高手需要要掌握的知识点
2014/08/21 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
python实现巡检系统(solaris)示例
2014/04/02 Python
浅谈python对象数据的读写权限
2016/09/12 Python
python 队列详解及实例代码
2016/10/18 Python
python通过链接抓取网站详解
2019/11/20 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
Gap工厂店:Gap Factory
2017/11/02 全球购物
三好学生自我鉴定
2013/12/17 职场文书
学年自我鉴定
2014/01/16 职场文书
中学生差生评语
2014/01/30 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
人事任命书格式
2014/06/05 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
2014年人事部工作总结
2014/12/03 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers