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 相关文章推荐
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
Jul 09 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
Feb 13 Javascript
解决checkbox的attr(checked)一直为undefined问题
Jun 16 Javascript
js实现交换运动效果的方法
Apr 10 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 Javascript
最实用的jQuery分页插件
Oct 09 Javascript
js实现不提示直接关闭网页窗口
Mar 30 Javascript
vue2.0 实现导航守卫(路由守卫)
May 21 Javascript
axios向后台传递数组作为参数的方法
Aug 11 Javascript
js array数组对象操作方法汇总
Mar 18 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
Aug 06 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
php文档更新介绍
2011/07/22 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
2015/03/04 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
使用Python生成随机密码的示例分享
2016/02/18 Python
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
python随机数分布random测试
2018/08/27 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
Python 获取项目根路径的代码
2019/09/27 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
Python流程控制语句的深入讲解
2020/06/15 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
生物技术毕业生自荐信
2013/10/23 职场文书
五年级数学教学反思
2014/02/11 职场文书
大学军训感言1000字
2014/02/25 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
Java并发编程必备之Future机制
2021/06/30 Java/Android
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android