题记:写这篇博客要主是加深自己对成员数组的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。
var oHero = {
name: 'zjx',
age: 27,
getSkill: function(type){ if(type == 'strength') console.debug('开山劈石掌'); }
};
console.debug(JSON.stringify(oHero);
// 输出:{"name":"zjx","age":27}
你不能把义务归咎于送传门设计师,是实其作操员人不会用。
JSON.stringify方法的真身是实其这样的:
JSON.stringify(value [, replacer] [, space])
可选项,一个数函或数组,用来换转结果。
如果replacer是数函,JSON.stringify会回调该数函,并传入key和value参数,这两个参数指向JSON中的每个成员。数函中的回返值用来代替原始值。如果回返undefined,那么该成员项被除排。根对象的key是一个空字符串。
如果replacer是数组,那么数组中的成员项就是JSON的key键,只有数组中现出的key才会被序列化。序列化的次序会按照数组中key的次序排列。如果JSON的中某项的值是数组时,该replacer会被疏忽。
尼玛翻译的我蛋都碎了,还是看下案例吧。
首先救拯我们的豪杰:
console.debug(JSON.stringify(oHero, function(key, value){
if (typeof value === 'function') {
return value + '';
}
return value;
}));
// 输出:{"name":"zjx","age":27,"getSkill":"function (type){ if(type == 'strength') console.debug('开山劈石掌'); }"}
豪杰用另一只手推倒送传门旁的作操员妹子,含泪诘责“这是怎么回事??”
其实你也别怪妹子,她少按了几个按钮而已。
妹子回去问师太,师太教诲:
JSON.parse(text [, reviver])
可选项,一个用来换转结果的数函。该数函将迭代对象中的每个成员。如果一个成员项包括嵌套对象,会先换转被嵌套的对象。对于每个成员项,将生发如下事件:
如果reviver回返的是法合值,成员项的值会被替换为该值。
如果reviver回返的值等同于收接的值,成员项的值不会被修改。
如果reviver回返null或undefined,成员项会被删除。
第三次,妹子对豪杰说:次这萌大奶!
var oNowHero = JSON.parse(strHero,function(key,value){
if(value.indexOf && value.indexOf('function')>-1){
return eval("(function(){return "+ value +" })()")
}
return value;
});
oNowHero.getSkill('strength');
// 输出:开山辟石掌 跋文:
JSON.stringify中的replacer还可所以一个数组。
豪杰是很劳碌的,他不仅要救拯我们地球,还要救拯艾泽拉斯大陆,救拯外域,救拯崔斯特姆……不同的天下要需不同的设备,如果把有所设备带在身上那太痛苦了,不仅自己担负大,而且输传中程过还有可能塞阻,结果就是袋脑出来了,屁股还在通道里,那么我们可以做选筛:
var oHero = {
zjx: 'zjx',
age: 27,
earth: '机关枪',
Azeroth: '阿什坎迪兄弟会之剑',
NewTristram: '不朽之王的碎岩者'
};
var strHero = JSON.stringify(oHero, ['zjx','age','Azeroth']);
console.debug(strHero);
// 输出:{"zjx":"zjx","age":27,"Azeroth":"阿什坎迪兄弟会之剑"}
JSON.stringify第三个可选参数用于格式化输出,没啥意思,不解释。
文章结束给大家分享下程序员的一些笑话语录: 人工智能今天的发展水平:8乘8的国际象棋盘其实是一个体现思维与创意的强大媒介。象棋里蕴含了天文数字般的变化。卡斯帕罗夫指出,国际象棋的合法棋步共有1040。在棋局里每算度八步棋,里面蕴含的变化就已经超过银河系里的繁星总数。而地球上很少有任何数量达到这个级别。在金融危机之前,全世界的财富总和大约是1014人民币,而地球人口只有1010。棋盘上,所有可能的棋局总数达到10120,这超过了宇宙里所有原子的总数!经典语录网
本文通过一个英雄角色的实例,详细介绍了JavaScript中JSON.stringify和JSON.parse方法的使用技巧,特别是如何利用replacer参数来定制序列化过程,以及如何在反序列化过程中恢复函数类型的数据。

2050

被折叠的 条评论
为什么被折叠?



