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实现随屏幕滚动的带缓冲效果的右下角广告代码
Sep 04 Javascript
JavaScript+canvas实现七色板效果实例
Feb 18 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
Dec 07 Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 Javascript
webpack配置之后端渲染详解
Oct 26 Javascript
基于vue2.x的电商图片放大镜插件的使用
Jan 22 Javascript
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
Oct 24 Javascript
vue开发环境配置跨域的方法步骤
Jan 16 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
Apr 04 jQuery
js基础之事件捕获与冒泡原理
Oct 09 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
php5 mysql分页实例代码
2008/04/10 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
基于Django用户认证系统详解
2018/02/21 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
Java的基础面试题附答案
2016/01/10 面试题
一套带答案的C++笔试题
2014/01/10 面试题
高级技校毕业生自荐信
2013/11/18 职场文书
小学新学期教师寄语
2014/01/18 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
论文答谢词
2015/01/20 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python