【发布时间】:2018-05-13 09:52:18
【问题描述】:
我有以下带有嵌套对象的 JSON 数据。我想从此结构中删除“id”并从函数中返回更改后的 JSON。我尝试以递归方式执行此操作,但无法返回更改后的 JSON。
var jsonStr =
{"_id":"7r0c0342e",
"user":"myuser",
"project":"abcd",
"info":{"DOMAIN":{"Department":{"profile":[{"workex":8,"name":"alex","id":82838},
{"workex":8,"name":"smith","id":84838} ]}}} };
processJSON(jsonStr);
function processJSON(jsondata) {
for (var i in jsondata) {
var row = jsondata[i];
if(typeof row == "object") {
processJSON(row);
} else if(typeof row == 'number') {
if(i == 'id') {
delete jsondata[i];
} else {
continue;
}
} else {
continue;
}
}
}
console.log(jsonStr);
如何从 processJSON() 返回 JSON 的其余部分并将其保存在变量中?其次,这是递归执行它的正确方法吗?
谢谢。
【问题讨论】:
-
这不是 json 字符串(变量名具有误导性)。
-
您实际上并没有在该函数中返回任何内容,也没有改变原始 JSON 对象。所以实际上它什么也没做。另外,易卜拉欣所说的话。 ^^^
标签: javascript json recursion