使用JSON.stringify()时如何忽略.toJSON函数?

时间:2015-06-29 12:22:21

标签: javascript json default method-overriding stringify

我发现如果为对象定义.toJSON()函数,那么它用于对对象进行字符串化,而不是默认。 有没有办法忽略这个重写的函数并运行默认的字符串化过程?

1 个答案:

答案 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);




<强>参考