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总体架构的理解分析
Mar 07 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
JavaScript转换二进制编码为ASCII码的方法
Apr 16 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 Javascript
nginx配置React静态页面的方法教程
Nov 03 Javascript
记一次webapck4 配置文件无效的解决历程
Sep 19 Javascript
vue之延时刷新实例
Nov 14 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
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
python网页请求urllib2模块简单封装代码
2014/02/07 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
升职自荐信
2013/11/28 职场文书
优秀交警事迹材料
2014/01/26 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
药剂专业求职信
2014/06/20 职场文书
新闻稿格式范文
2015/07/18 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
python数字图像处理:图像简单滤波
2022/06/28 Python