const obj = {
a: 3,
b: 4,
c: null,
d: undefined,
get e() {
return 'e'
}
}
console.log(JSON.stringify(obj))
答案:
"{"a": 3, "b": 4, "c": null}"
对象中的null, function将在JSON.stringify时会忽略掉
如果对上面的例子,再进行改造,看看会输出什么结果
var obj = {
a: 3,
b: 3,
c: null,
d: undefined,
get e() {return 'e'},
toJSON() {return {a: 1, b: 2}}
}
console.log(JSON.stringify(obj))
答案:
"{"a":1,"b":2}"
当对象中有toJSON方法时,则只会返回toJSON内部返回的值,因为JSON.stringify()内部也会调用toJSON方法,如果在对象中写了toJSON方法,相当于重写了toJSON方法