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不同页面传值的改进版
Sep 30 Javascript
jQuery学习笔记之DOM对象和jQuery对象
Dec 22 Javascript
改变状态栏文字的js代码
Jun 13 Javascript
jquery常用函数与方法汇总
Sep 01 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 Javascript
javascript显示系统当前时间代码
Dec 29 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
vue.js开发环境安装教程
Mar 17 Javascript
jQuery ajax动态生成table功能示例
Jun 14 jQuery
JavaScript实现三级联动效果
Jul 15 Javascript
Node配合WebSocket做多文件下载以及进度回传
Nov 07 Javascript
javascript实现文字跑马灯效果
Jun 18 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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
node.js中的fs.lchownSync方法使用说明
2014/12/16 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
pandas分批读取大数据集教程
2020/06/06 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
盛大二次面试题
2016/11/18 面试题
中学教师实习自我鉴定
2013/09/28 职场文书
自荐书模板
2013/12/19 职场文书
考试作弊被抓检讨书
2014/01/10 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
公证书格式
2015/01/23 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
停电放假通知
2015/04/14 职场文书
论文评审意见
2015/06/05 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
SQL写法--行行比较
2021/08/23 SQL Server