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 相关文章推荐
常见JS效果之图片减速度滚动实现代码
Dec 08 Javascript
让元素在网页中可拖动示例代码
Aug 13 Javascript
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
Apr 17 Javascript
全面解析Bootstrap表单样式的使用
Sep 09 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
Oct 29 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
Mar 22 Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 Javascript
webpack 处理CSS资源的实现
Sep 27 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
Oct 15 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
PHP脚本的10个技巧(6)
2006/10/09 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
php新建文件的方法实例
2019/09/26 PHP
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
python strip()函数 介绍
2013/05/24 Python
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
python实现汉诺塔递归算法经典案例
2021/03/01 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
python多线程实现TCP服务端
2019/09/03 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
python str字符串转uuid实例
2020/03/03 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
同学会主持词
2014/03/18 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
五四青年节的活动方案
2014/08/20 职场文书
2015年妇女工作总结
2015/05/14 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript