gpt4 book ai didi

json - 保存的 JSON 文件被覆盖

转载 作者:行者123 更新时间:2023-12-03 12:41:27 30 4
gpt4 key购买 nike

我想为此将用户输入保存到 JSON 中,比方说,我有以下代码:

// saves data in to an object
saveData() {
let summaryValues = {
what: this.what.txt,
how: this.how.txt,
checkedValue: this.checked
};
this.savedValueArr.push(summaryValues);
},
//uses the array with the pushed object to append the JSON
saveAsJson() {
const fs = require("fs");

var content = JSON.stringify(this.savedValueArr);
fs.appendFile("testFile.json", content, err => {
if (err) console.log(err);
alert("File has been saved");
this.what.txt = "";
this.how.txt = "";
this.checked = "";
});
},
// reads JSON and pushs it to a variable
read() {
const fs = require("fs");

fs.readFile("testFile.json", "utf-8", (err, data) => {
if (err) {
alert("An error ocurred reading the file :" + err.message);
return;
}

// push parsed data back in to an array
let dataParse = JSON.parse(data);
this.test.push(dataParse);

});

}

read() 和 saveAsJson() 都是单击事件 saveAsJson 将单击时的数据保存在 testFile.json 中, read() 在单击时读取 testFile.json 并
我现在的第一个问题是我的 JSON 在我用两个数组填充后看起来像这样
[{"what":"test2","how":"test2","checkedValue":2},{"what":"test1","how":"test1","checkedValue":1}][{"what":"test2","how":"test2","checkedValue":2}]
我的第二个问题是,如果我关闭应用程序然后重新打开它并首先单击具有读取功能的按钮(以加载数据),然后填写字段并单击绑定(bind)了 saveAsJson 功能的按钮我的 JSON 覆盖了旧的保存数据,只保存了新数据。我不想发生这种情况。

如果有帮助,我正在将 Electron 与 vue.js 一起使用。

最佳答案

我设法通过更改读取函数中的变量来解决这个问题

read() {
const fs = require("fs");

fs.readFile("testFile.json", "utf-8", (err, data) => {
if (err) {
alert("An error ocurred reading the file :" + err.message);
return;
}

// push parsed data back in to an array
let dataParse = JSON.parse(data);
// CHANGED
this.savedValueArr.push(dataParse);

});

关于json - 保存的 JSON 文件被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60670368/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com