js中将字符串转换成json的三种方式


Posted in Javascript onJanuary 12, 2011

ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。

1,eval方式解析,恐怕这是最早的解析方式了。如下:

function strToJson(str){ 
var json = eval('(' + str + ')'); 
return json; 
}

记得别忘了str两旁的小括号。
2,new Function形式,比较怪异哦。如下
function strToJson(str){ 
var json = (new Function("return " + str))(); 
return json; 
}

3,使用全局的JSON对象,如下:
function strToJson(str){ 
return JSON.parse(str); 
}

目前 IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法,以下是部分资料:http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx https://developer.mozilla.org/en/Using_JSON_in_Firefox
使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下
var str = '{name:"jack"}'; 
var obj = JSON.parse(str); // --> parse error

name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。
另见:Chrome中JSON.parse的特殊实现
Javascript 相关文章推荐
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
May 10 Javascript
jQuery数据显示插件整合实现代码
Oct 24 Javascript
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
May 12 Javascript
jQuery自制提示框tooltip改进版
Aug 01 Javascript
微信小程序 Image API实例详解
Sep 30 Javascript
基于jquery实现多级菜单效果
Jul 25 jQuery
webpack打包并将文件加载到指定的位置方法
Feb 22 Javascript
解决vue项目打包后提示图片文件路径错误的问题
Jul 04 Javascript
Vue 中axios配置实例详解
Jul 27 Javascript
vue.js多页面开发环境搭建过程
Apr 24 Javascript
Vue的双向数据绑定实现原理解析
Feb 17 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
Jan 12 #Javascript
基于JQuery实现相同内容合并单元格的代码
Jan 12 #Javascript
jquery EasyUI的formatter格式化函数代码
Jan 12 #Javascript
Script的加载方法小结
Jan 12 #Javascript
javascrip客户端验证文件大小及文件类型并重置上传
Jan 12 #Javascript
javascript smipleChart 简单图标类
Jan 12 #Javascript
javascript Window及document对象详细整理
Jan 12 #Javascript
You might like
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
Javascript中的isNaN函数使用说明
2011/11/10 Javascript
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
layui文件上传实现代码
2017/05/20 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
Python实现的石头剪子布代码分享
2014/08/22 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
传播学专业毕业生自荐书
2014/07/01 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL