JSON.stringify()的不常见用法
发布时间:2020-12-16 18:41:51 所属栏目:百科 来源:网络整理
导读: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(ob
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}},"===")) { ==="a": { ======"b": 1 ===} } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |