谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)


Posted in Javascript onOctober 01, 2015

在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。

JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

var a={"name":"tom","sex":"男","age":"24"};
var aToStr = JSON.stringify(a);
alert(aToStr); //结果:{"name":"tom","sex":"男","age":"24"}

  结果:string

var b='{"name":"tom","sex":"男","age":"24"}';
var aToObj = JSON.parse(b); 
console.log(aToObj); //结果:Object {name: "tom", sex: "男", age: "24"}

结果:object

ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;

现在一般用json2.js,下载地址:点击此处。

在页面中添加就能解决IE低版本没有json对象的问题。

<script type="text/javascript" src="js/json2.js"></script>

PS: JSON的parse()和stringfy()方法

1.JSON.parse;

作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)

语法:JSON.parse(text [, reviver])

text 必选。 一个有效的 JSON 字符串。

reviver 可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。

返回值:JSON对象

实例:

var jsonStr = '{"name":"leinov","sex":"famle","address":"beijing"}'
var jsonObj = JSON.parse(jsonStr);
alert(typeof jsonObj); //Object

2.JSON.stringify

作用:将 JavaScript json对象转换为JavaScript对象表示法的JSON字符串(对象转为字符串)

语法:JSON.stringify(value [, replacer] [, space]);

value 必选 通常为对象或数组

replacer 可选转换结果的函数或数组

space 可选。 添加缩进、空白和换行符来返回值 JSON 文本更便于阅读。

         如果省略 space,返回值文本生成,没有任何额外的空白。

         如果 space 是数字,则返回值具有空白的文本缩进指定数目在每个级别的。 如果 space 大于 10 时,文本缩进 10 个空白。

         如果 space 为非空字符串,如“\t”,返回值文本缩进与字符串的字符在每个级别。

         如果 space 为大于 10 个字符的字符串,使用前 10 个字符。

返回值:JSON 包含的文本字符串。

实例:

var student = new Object();
student.name = "leinov";
student.sex = "famle";
student.address = "chaoyang";
var jsonStudent = JSON.stringify(student);
alert(typeof jsonStudent); //string
Javascript 相关文章推荐
escape、encodeURI 和 encodeURIComponent 的区别
Mar 02 Javascript
JS解决ie6下png透明的方法实例
Aug 02 Javascript
可恶的ie8提示缺少id未定义
Mar 20 Javascript
用js闭包的方法实现多点标注冒泡示例
May 29 Javascript
jquery用offset()方法获得元素的xy坐标
Sep 06 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
Aug 17 Javascript
Javascript发送AJAX请求实例代码
Aug 21 Javascript
详解使用webpack构建多页面应用
Dec 21 Javascript
探索Vue高阶组件的使用
Jan 08 Javascript
微信小程序自定义modal弹窗组件的方法详解
Dec 20 Javascript
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
Vue ​v-model相关知识总结
Jan 28 Vue.js
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 #Javascript
基于OL2实现百度地图ABCD marker的效果
Oct 01 #Javascript
JS处理json日期格式化问题
Oct 01 #Javascript
JS日期格式化之javascript Date format
Oct 01 #Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
Oct 01 #Javascript
RequireJS入门一之实现第一个例子
Sep 30 #Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
Sep 30 #Javascript
You might like
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
php中session定期自动清理的方法
2015/11/12 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
thinkphp分页实现效果
2016/10/13 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
js 遍历对象的属性的代码
2011/12/29 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
Python跳出循环语句continue与break的区别
2014/08/25 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
PyCharm代码格式调整方法
2018/05/23 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
商场总经理岗位职责
2014/02/03 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
开平碉楼导游词
2015/02/06 职场文书
商标侵权律师函
2015/05/27 职场文书
Python如何用re模块实现简易tokenizer
2022/05/02 Python