JSON.stringify()只序列化可遍历属性(enumerable=true)
复制代码
varobj={};
Object.defineProperties(obj,{
'foo':{
value:1,
enumerable:true
},
'bar':{
value:2,
enumerable:false
}
});
JSON.stringify(obj);//"{"foo":1}"
复制代码
JSON.stringify(obj,fn|arr);
1)当第二个参数为数组时,表示需要被序列化的对象的属性列表;
2)当第二个参数为方法时,function(key,value){}表示每个属性对应的key-value值,最终的返回值可以用来改变原来的结果。
该方法可以用来在序列化之前改变对象的内容。
复制代码
varo={a:{b:1}};
functionf(key,value){
console.log("["+key+"]:"+value);
returnvalue;
}
JSON.stringify(o,f)
//[]:[objectObject]
//[a]:[objectObject]
//[b]:1
//'{"a":{"b":1}}'
//递归处理,每次处理上次的返回结果
复制代码
JSON.stringify(obj,null,number|string)
可以接受第三个参数,这个可以用来按格式打印对象
当第三个参数为数值时,表示每个属性前的空格数(<10)
复制代码
console.log(JSON.stringify({a:{b:1}},null,2))
{
"a":{
"b":1
}
}
复制代码
上一篇:怎么在CSS3中实现瀑布流布局