我正在寻找一种方法来替换 JSON 文件中的一堆数据,而不替换它的其他部分:
{
"task": [
{
"id": 5,
"title": "dave",
"description": "test"
},
{
"id": 6,
"title": "fddsfsd",
"description": "fsdfsd"
},
{
"id": 7,
"title": "fddsfssdfsdfd",
"description": "fsdfsd"
},
{
"id": 8,
"title": "fddsfssdfsdfd",
"description": "fsdfsd"
}
],
"compteur": [
{
"id": 8
}
]
}
我设法获取变量中“任务”括号之间的所有内容。 我当前的问题是我只需要替换括号内的内容,而不影响文件的其他部分。
这是我用于检索“任务”数据的代码:
function RemoveNode(idToDelete) {
return jsonData.task.filter(function(emp) {
if (emp.id == idToDelete) {
return false;
}
return true;
});
}
var newData = RemoveNode(idToDelete);
arr1 = JSON.stringify(newData, null, 4);
console.log("arr1", arr1);
console.log 给了我:
arr1 [
{
"id": 5,
"title": "dave",
"description": "test"
},
{
"id": 6,
"title": "fddsfsd",
"description": "fsdfsd"
},
{
"id": 8,
"title": "fddsfssdfsdfd",
"description": "fsdfsd"
}
]
我实际上需要在原始 JSON 文件中替换它,但我完全不知道如何实现这一点。
最佳答案
您可以使用展开运算符,这将使用新的过滤数据覆盖任务数据
const removeNode = (idToDelete) =>
jsonData.task.filter((emp) => emp.id != idToDelete);
const newData = RemoveNode(idToDelete);
const updatedJSONData = {...jsonData, task: newData};
关于javascript - 替换 JSON 文件中的整个数据 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60483282/