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 相关文章推荐
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
Mar 06 Javascript
JQuery 返回布尔值Is()条件判断方法代码
May 14 Javascript
jquery实现input输入框实时输入触发事件代码
Jan 28 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
JavaScript中实现最高效的数组乱序方法
Oct 11 Javascript
JavaScript中使用concat()方法拼接字符串的教程
Jun 06 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
浅析jQuery Ajax通用js封装
Jun 22 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
使用微信小程序开发前端【快速入门】
Dec 05 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
Nov 25 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
Sep 11 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版(1)
2006/10/09 PHP
PHP一些有意思的小区别
2006/12/06 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
Yii使用技巧大汇总
2015/12/29 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
js 事件小结 表格区别
2007/08/13 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
详解js的六大数据类型
2016/12/27 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
Django 实现图片上传和下载功能
2020/12/31 Python
为什么要做架构设计
2015/07/08 面试题
建筑毕业生自我鉴定
2013/10/18 职场文书
工程招投标邀请书
2014/01/26 职场文书
客户接待方案
2014/02/26 职场文书
荷叶母亲教学反思
2014/04/30 职场文书
幽灵公主观后感
2015/06/09 职场文书
文化大革命观后感
2015/06/17 职场文书