JSON.stringify(),JSON.parse(),toJSON()方法使用
来源:互联网 发布:js文件加载失败 编辑:程序博客网 时间:2024/05/16 04:56
1.JSON.stringify(),将value(Object,Array,String,Number...)序列化为JSON字符串
2.JSON.parse(), 将JSON数据解析为js原生值
3. toJSON(),作为JSON.stringify中第二个参数(函数过滤器)补充
支持 IE8+,FF3.5+,safari4+,opera10.5+,chrome
//
* ===================ECMAscript5全局对象JSON=====================
* Json:只是一种轻量级的数据格式。使用jssyntax的子集表示对象、数组、字符串、数值、布尔值、和null
* Note:ECMAScript5 定义了一个原生的JSON对象,
用来将对象序列化为JSON字符串(JSON.stringify()),
或者将JSON数据解析为js对象(JSON.parse())。
* support: IE8+,FF3.5+,safari4+,opera10.5+,chrome
* IE6,7 : https://github.com/douglascrockford/JSON-js
//
//
* JSON.stringify()
* @specify : serialization(序列化)
* @method : JSON.stringify(value,filter,indent);
* @return : JSON字符串
* @param : value {type :String|Object|String|Number|Boolean|null} {explain :传入的类型可以是列出的這些}
* @param : filter : {type : []|{}} {explain :过滤器可以是个数组,也可以是个函数}
* @param : indent : {type : Number | 特殊符号} {explain :如果是数字则代表空白符的个数,最多10个;也可以直接传入缩进的符号}
var gather = {id : 1314,name : 'pom',infor : {age : 20,sex : 'man',marry : false,identity : 622421,habit : ['篮球','台球','乒乓球','游戏',true]},family : ['妈妈','爸爸','弟弟'],likeGames : ['PCgame','Netgame']};var jsonText = JSON.stringify(gather,null,4);//第二个参数是数组,只会序列化返回数组里列出的名称var jsonText1 =JSON.stringify(gather,['id','family'],'=');var jsonText2 = JSON.stringify(gather,function(key,val){switch(key){case 'id' :return 'id is ' + val;case 'family' :return val.join('@');case 'infor' ://infor的val 还可以使用JSON.stringify()//return JSON.stringify(val,["age","sex"]);return Object.prototype.toString.call(val).slice(8, -1);case 'likeGames' ://通过返回undefined删除该属性return undefined;//一定要default,以便传入的其他值能正常的返回到序列化结果中。default :return val;}},10);// console.log(jsonText);// console.log(jsonText1);// console.log(jsonText2)//
* toJSON()* @specify :JSON.stringify()不能满足对某些对象进行自定义序列化的需求,可以通过对象那个上调用toJSON()方法* @method : date.toJSON()* @return : 返回任何序列化的值。* * JSON.parse() ,eval_r() 也可以解析并返回js对象和数组等。但IE8以下浏览器会有安全隐患。* @specify : 将json字符串解析为原生的javascript值。* @method : JSON.parse(val,replacer)* @param : val{type : String} {explain : 需要解析的json字符串}* @param : replacer {type : function} {explain :和JSON.stringify()第二个参数类似,接受2个参数,key,val,不过是用来还原json串的函数}//var products = {name : "leading","time" : new Date(2012,03,1),toJSON : function(){//只返回namereturn this.name;}}var proStr = JSON.stringify(products);console.log(proStr);//obj中的relaeseDate对象序列化之后成了有效的json串var obj = {title : '对象的标题',type : 'primitive' ,releaseDate : new Date(2012,03,1)};//转化为json串var o = JSON.stringify(obj);console.log(o);
//在parsedO中还原为一个Date对象(会基于相应的值创建一个新的Date对象,结果parsedO.releaseDate属性中保存了一个Date对象)var parsedO = JSON.parse(o,function(k,v){if(k == 'releaseDate'){return new Date(v);}else{return v;}});console.log(parsedO);//可以调用getFullYear()console.log(parsedO.releaseDate.getFullYear()); //2012
执行原理:
阅读全文
1 0
- JSON.stringify(),JSON.parse(),toJSON()方法使用
- JSON.stringify(), JSON.parse(), toJSON()方法使用
- JSON.stringify(),JSON.parse(),toJSON()方法使用
- JSON.stringify(),JSON.parse(),toJSON()方法使用-20 chapter
- JSON.stringify(),JSON.parse(),toJSON()方法使用-20 chapter
- JSON.stringify(),JSON.parse(),toJSON()
- JSON.stringify()、JSON.parse()、Object.toJSON()
- JSON.parse()与JSON.stringify()方法使用
- ajax中JSON.stringify()和JSON.parse()方法的使用
- JSON.parse()与JSON.stringify()方法的使用与区别
- JSON.parse() JSON.stringify()
- JSON.parse(JSON.stringify())
- JSON.parse和JSON.stringify方法
- JSON.parse 和 JSON.stringify 的使用
- JSON.parse()和JSON.stringify()使用介绍
- JSON.parse()和JSON.stringify()使用介绍
- 使用JSON.parse()和JSON.stringify()区别
- JSON.parse()和JSON.stringify()使用介绍
- 一个基于ffmpeg+QT的视频播放器
- Js slice()方法与substr和substring的区别
- 基于ISO镜像构建Yum本地源
- hdu 6166(随机概率dijkstra)
- 彻底弄懂css中单位px和em,rem的区别
- JSON.stringify(),JSON.parse(),toJSON()方法使用
- 挑战程序竞赛系列(61):4.6平面上的分治法(1)
- matplotlib坐标轴中文乱码问题解决
- 状态管理工具vuex初识
- solr查询条件过多异常
- DrawerLayout侧拉菜单+TabLayou导航栏
- WPF实现半透明背景的弹框
- 反转链表
- 在Linux的PC上挂载jffs2根文件系统映像