Google Chrome是否支持JSON?

时间:2010-12-14 19:15:45

标签: javascript json google-chrome

在Google Chrome中使用JSON.stringify时,似乎没有调用toJSON?我使用json2.js作为不支持它的浏览器的备份。我想因为Chrome支持JSON但不支持JSON json2.js根本没有使用?

更新
以下是一个示例:http://jsfiddle.net/GZzvZ/

Firefox:{“foo”:“foo”,“bar”:“bar”} Chrome:{“bar”:“bar”}

1 个答案:

答案 0 :(得分:4)

var t = {};

t.toJSON = function () { alert('meuh'); return (''); }
JSON.stringify(t)

对我来说效果很好。 它会发出警报,因此它会相应地调用toJSON方法(在Chrome 8中)。

编辑:

正常。您的Foo是一个函数,JSON中不允许使用函数对象。我想,Firefox只是宽容了。

嗯,实际上我想知道,我没有在标准中找到明确的答案。考虑到你提供了一个toJSON()来提供你自己的序列化,是否允许它。但无论如何,这就是你失败的原因。

如果您像这样修改jsFiddle示例,则toJSON会相应调用foo

var obj = function(){
    this.foo = 'test'; // OK
    //this.foo = function(){ }; KO
    this.foo.toJSON = function(){
        return 'foo';  
    };

    this.bar = 'bar';
}

var ins = new obj();
var json = JSON.stringify( ins );
document.write( json );