谈谈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 相关文章推荐
js 解决“options为空或不是对象”
Dec 22 Javascript
jquery实现每个数字上都带进度条的幻灯片
Feb 20 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
Nov 23 Javascript
js实现对ajax请求面向对象的封装
Jan 08 Javascript
AngularJs bootstrap搭载前台框架——基础页面
Sep 01 Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 Javascript
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
基于vue手写tree插件的那点事儿
Aug 20 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
微信小程序使用 vant Dialog组件的正确方式
Feb 21 Javascript
Vue项目利用axios请求接口下载excel
Nov 17 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
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
python判断字符串是否纯数字的方法
2014/11/19 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python之消除前缀重命名的方法
2018/10/21 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
Python输出指定字符串的方法
2020/02/06 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
武汉瑞得软件笔试题
2015/10/27 面试题
大专自我鉴定范文
2013/10/23 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
食品卫生管理制度
2015/08/06 职场文书
初中历史教学反思
2016/02/19 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android