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类中获取外部函数名的方法
Aug 19 Javascript
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
May 11 Javascript
js获取客户端网卡的IP地址、MAC地址
Mar 26 Javascript
jquery ajax 如何向jsp提交表单数据
Aug 23 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
Jan 03 Javascript
jquery ajaxfileupload异步上传插件使用详解
Feb 08 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
vue动态路由实现多级嵌套面包屑的思路与方法
Aug 16 Javascript
js HTML5 canvas绘制图片的方法
Sep 08 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实现的功能是显示8条基色色带
2006/10/09 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
php中引用符号(&)的使用详细介绍
2016/12/06 PHP
JQuery之focus函数使用介绍
2013/08/20 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
js动态引入的四种方法
2018/05/05 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
利用python修改json文件的value方法
2018/12/31 Python
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
《母鸡》教学反思
2014/02/25 职场文书
自我鉴定标准格式
2014/03/19 职场文书
家长会主持词
2014/03/26 职场文书
房产继承公证书
2014/04/09 职场文书
公司财务管理制度
2015/08/04 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
培训心得体会怎么写
2016/01/25 职场文书