我有以下代码:为什么JSON.stringify()替换函数不起作用?
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": {
"week": 3
},
"month": 7
};
console.log(JSON.stringify(foo,
function(k, v) {
if (k === "week")
return v;
else
return undefined;
}));
所以按说,我的“周”,即没有嵌套应该回来想至少我会看到如何让一个嵌套回来吧。但是不管怎么改,console.log
打印出undefined
,除非我总是把功能改成return v
,然后我找回整个对象。这是为什么?
因为第一次调用替换器时会发送'“”'(一个空字符串),并且返回'undefined',从而有效地停止转换过程。 – 2013-05-02 01:50:00
MDN文档:[替换参数](https://developer.mozilla.org/en-US/docs/Using_native_JSON#The_replacer_parameter) – 2013-05-02 01:57:40
我有点奇怪,为什么最初的传球是... ...似乎我们需要“特别处理它“......如果第一次通过空键和值作为未完成的对象,那么如果我们需要第一次通过,我们总是可以做一些特殊处理......实际上,我没有看到一个原因需要第一次通过 – 2013-05-02 02:06:30