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 EasyUI API 中文文档 - PropertyGrid属性表格
Nov 18 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
Apr 03 Javascript
jQuery中extend()和fn.extend()方法详解
Jun 03 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
Aug 07 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
Apr 01 Javascript
前端js文件合并的三种方式推荐
May 19 Javascript
JavaScript数组方法大全(推荐)
Jul 05 Javascript
AngularJs bootstrap详解及示例代码
Sep 01 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
详解vue-cli 脚手架 安装
Apr 16 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 Javascript
javascript对象3个属性特征
Nov 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
php删除数组元素示例分享
2014/02/17 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
JavaScript 撑出页面文字换行
2009/06/15 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
Angular Material Icon使用详解
2018/11/07 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
python DataFrame 修改列的顺序实例
2018/04/10 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
python实现多层感知器
2019/01/18 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
jupyter notebook清除输出方式
2020/04/10 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
营销总监岗位职责范本
2014/02/26 职场文书
网站客服岗位职责
2014/04/05 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers