我发现如果为对象定义.toJSON()
函数,那么它用于对对象进行字符串化,而不是默认。
有没有办法忽略这个重写的函数并运行默认的字符串化过程?
答案 0 :(得分:0)
重新定义指定对象中的toJSON
方法。例如:
function kryptonite(key)
{
var replacement = {};
for(var __ in this)
{
if(__ in alias)
replacement[__] = this[__]
}
return replacement;
}
var foo, bar;
var alias = {"Clark":"","phone":""};
var contact = {
"Clark":"Kent",
"Kal El":"Superman",
"phone":"555-7777"
}
contact.toJSON = kryptonite;
foo = JSON.stringify(contact);
contact.toJSON = undefined;
bar = JSON.stringify(contact);
console.log("foo: ", foo);
console.log("bar: ", bar);

<强>参考强>