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 相关文章推荐
extjs 列表框(multiselect)的动态添加列表项的方法
Jul 31 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
Mar 27 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
瀑布流布局代码一例
Apr 11 Javascript
详解Document.Cookie
Dec 25 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Dec 15 Javascript
jQuery实现验证码功能
Mar 17 Javascript
详解http访问解析流程原理
Oct 18 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
微信小程序自定义组件components(代码详解)
Oct 21 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 Javascript
在webstorm中配置less的方法详解
Sep 25 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
python提示No module named images的解决方法
2014/09/29 Python
Python下载指定页面上图片的方法
2016/05/12 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
如何填写个人简历自我评价
2013/12/10 职场文书
证券期货行业个人的自我评价
2013/12/26 职场文书
实习鉴定评语
2014/01/19 职场文书
名人演讲稿范文
2014/09/16 职场文书
环保建议书作文400字
2015/09/14 职场文书
公司借款担保书
2015/09/22 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫