Javascript 如果ID没有';还没有定义
我想要一个JSON文件,看起来像这样:Javascript 如果ID没有';还没有定义,javascript,Javascript,我想要一个JSON文件,看起来像这样: { "3091015": { "array": [ "value 1", "value 2", ... ] }, "9096539": { "array": [ "value 1", "value 2", ... ] }
{
"3091015": {
"array": [
"value 1",
"value 2",
...
]
},
"9096539": {
"array": [
"value 1",
"value 2",
...
]
},
...
}
如果需要将新值添加到现有ID的数组中,或者需要添加一个新ID及其数组和第一个值,我要做的是写入或追加到此文件。因此,它将作为一个数据库工作。我想使用JSON,以便能够轻松地手动修改该文件的内容,而且它永远不会超过1或2MB。以下是一些实际工作的代码,但仅当给定ID及其数组已在JSON文件中定义时:
fs.readFile("./db.json", "utf8", (err, data) => {
if (err) {
throw err;
} else {
let json = JSON.parse(data);
if (!json) {
json[identificator] = {};
}
if (!json[identificator].array) {
json = json[identificator] = {
array: []
};
}
let array = json[identificator].array;
if (array.includes(value)) return;
array.push(value);
fs.writeFile("./db.json", JSON.stringify(json, null, 4), err => {
if (err) throw err;
});
}
});
你的条件句是错误的。您需要测试
json[identificator]
是否存在,而不是json
是否存在
而且,json=json[identificator]=…
是错误的,因为它仅用一个条目替换了json
fs.readFile("./db.json", "utf8", (err, data) => {
if (err) {
throw err;
} else {
let json = data ? JSON.parse(data) : {};
if (!json[identificator]) {
json[identificator] = {
array: []
};
}
let array = json[identificator].array;
if (array.includes(value)) return;
array.push(value);
fs.writeFile("./db.json", JSON.stringify(json, null, 4), err => {
if (err) throw err;
});
}
});