【发布时间】:2012-05-22 15:34:36
【问题描述】:
我正在尝试使用 JSON.parse 滥用 reviver 函数。
我基本上是想让某些字段为“null”。
如果我这样做:
var json_data = JSON.parse(j, function(key, value) {
if (key == "name") {
return value;
} else {
return null;
}
});
整个 json_data 对象最终为空。事实上,不管我做什么else,它都定义了json_object的值。
有趣的是,这按预期工作:
var json_data = JSON.parse(j, function(key, value) {
if (key == "name") {
return "name";
} else {
return value;
}
});
属性“name”现在的值为“name”。
有问题的 JSON:
var j = '{"uuid":"62cfb2ec-9e43-11e1-abf2-70cd60fffe0e","count":1,"name":"Marvin","date":"2012-05-13T14:06:45+10:00"}';
更新
我刚刚意识到与我想做的相反的事情也可以,所以我可以取消 name 字段:
var json_data = JSON.parse(j, function(key, value) {
if (key == "name") {
return null;
} else {
return value;
}
});
【问题讨论】:
-
另外,如果您 console.log -- 或 alert -- reviver 函数中的值,您会看到什么?我检查了API,到目前为止你的代码看起来不错......
标签: javascript json debugging reviver-function