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 相关文章推荐
prototype 的说明 js类
Sep 07 Javascript
ext 代码生成器
Aug 07 Javascript
js综合应用实例简单的表格统计
Sep 03 Javascript
jquery队列queue与原生模仿其实现方法分享
Mar 25 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
JQuery为元素添加样式的实现方法
Jul 20 Javascript
easyui-datagrid特殊字符不能显示的处理方法
Apr 12 Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
Nov 30 Javascript
javascript创建元素和删除元素实例小结
Jun 19 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
Aug 12 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统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
JavaScript 异步调用框架 (Part 6 - 实例 & 模式)
2009/08/04 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
2017/09/20 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
python实现图片筛选程序
2018/10/24 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
基于Python的OCR实现示例
2020/04/03 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
宣传策划类求职信范文
2014/01/31 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
学期评语大全
2014/04/30 职场文书
2014年党员整改措施
2014/10/24 职场文书
个人工作总结范文2014
2014/11/07 职场文书
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js