gpt4 book ai didi

javascript - Google Chrome 是否支持 toJSON?

转载 作者:行者123 更新时间:2023-11-30 10:52:32 26 4
gpt4 key购买 nike

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

更新
这是一个例子:http://jsfiddle.net/GZzvZ/

Firefox: {"foo":"foo","bar":"bar"}
Chrome: {"bar":"bar"}

最佳答案

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

关于javascript - Google Chrome 是否支持 toJSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4443187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com