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打开word文档的实现代码(c#)
Apr 16 Javascript
jQuery select表单提交省市区城市三级联动核心代码
Jun 09 Javascript
javascript 中__proto__和prototype详解
Nov 25 Javascript
js点击选择文本的方法
Feb 09 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
Aug 28 Javascript
jQuery实现的购物车物品数量加减功能代码
Nov 16 Javascript
基于JavaScript实现无缝滚动效果
Jul 21 Javascript
详解angular部署到iis出现404解决方案
Aug 14 Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
javascript实现点击产生随机图形
Jan 25 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
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
php+javascript的日历控件
2009/11/19 PHP
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
document.all与WEB标准
2020/05/13 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
jquery对table做排序操作的实例演示
2017/08/10 jQuery
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
python内存管理分析
2015/04/08 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Windows下python3.7安装教程
2018/07/31 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
石油工程专业毕业生求职信
2014/04/13 职场文书
债务纠纷委托书
2014/08/30 职场文书
好人好事演讲稿
2014/09/01 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
无房证明样本
2015/06/17 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android