我正在尝试使用 JSON.parse 滥用 reviver 函数。
我基本上想让某些字段为“null”。
如果我这样做:
var json_data = JSON.parse(j, function(key, value) {
if (key == "name") {
return value;
} else {
return null;
}
});
整个 json_data 对象最终为空。事实上,不管我做什么,它定义了 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;
}
});