JSON.stringify()的不常见用法
Posted lyralee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON.stringify()的不常见用法相关的知识,希望对你有一定的参考价值。
1.JSON.stringify()只序列化可遍历属性(enumerable=true)
var obj = {}; Object.defineProperties(obj, { ‘foo‘: { value: 1, enumerable: true }, ‘bar‘: { value: 2, enumerable: false } }); JSON.stringify(obj); // "{"foo":1}"
2. JSON.stringify(obj, fn|arr);
1)当第二个参数为数组时,表示需要被序列化的对象的属性列表;
2)当第二个参数为方法时,function(key, value){}表示每个属性对应的key-value值,最终的返回值可以用来改变原来的结果。
该方法可以用来在序列化之前改变对象的内容。
var o = {a: {b: 1}}; function f(key, value) { console.log("["+ key +"]:" + value); return value; } JSON.stringify(o, f) // []:[object Object] // [a]:[object Object] // [b]:1 // ‘{"a":{"b":1}}‘ // 递归处理,每次处理上次的返回结果
3. JSON.stringify(obj,null,number|string)
可以接受第三个参数,这个可以用来按格式打印对象
1)当第三个参数为数值时,表示每个属性前的空格数(<10)
console.log(JSON.stringify({a:{b:1}},null,2)) { "a": { "b": 1 } }
2)当第三个参数为字符串时,表示在每个属性前添加该字符串(<10)
console.log(JSON.stringify({a:{b:1}},null,"===")) { ==="a": { ======"b": 1 ===} }
以上是关于JSON.stringify()的不常见用法的主要内容,如果未能解决你的问题,请参考以下文章
JSON对象的解析,JSON.stringify()/JSON.parse()的用法
JSON.parse()和JSON.stringify() 的用法区别