gpt4 book ai didi

javascript - 根据用户的输入创建 JSON 文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:33 25 4
gpt4 key购买 nike

我正在尝试使用 JSON 作为我的应用程序的某种数据库。因此,用户添加一个输入并将其写入 JSON 文件,然后当我需要该信息时,我可以循环遍历 JSON。我正在使用 'fs' 在文件中写入对象的 JSON 格式:

fs.appendFile('log.json',  JSON.stringify(customer) + '\n' , function(err) {
if (err) {
return console.log(err);
}
console.log('saved in log.json');
});

所以我的 log.json 看起来像这样:

{"name":"John","email":"john@gmail.com"}
{"name":"Peter","email":"Peter@gmail.com"}

如果我读取每一行并将其转换为对象,这仍然可以使用,但显然它不是一个有效的 JSON 文件,如果我可以将其作为输出,那就更好了:

{
{"name":"John","email":"john@gmail.com"},
{"name":"Peter","email":"Peter@gmail.com"}
}

或者更好:

[
{"name":"John","email":"john@gmail.com"},
{"name":"Peter","email":"Peter@gmail.com"}
]

所以从技术上讲,我想做的就是保留 {} 并将我的文本附加在大括号内。请注意,我无法将所有输入存储在数组/对象中,然后将其写入日志文件中。我想要一种无外部模块的方法来在每次用户输入新信息时更新我的​​ log.json 文件。

最佳答案

我想出了这个解决方案,使用正则表达式替换每个新条目的右括号:

if (data.length < 5) {
console.log(data.length);
new_json = JSON.stringify(customer) + '\n' + ']';
result = data.replace(/\]$/g, new_json);
} else {
new_json = ',' + JSON.stringify(customer) + '\n' + ']';
result = data.replace(/\]$/g, new_json);
}

然后你可以使用JSON.parse解析该文件

fs.writeFile('log.json', result, 'utf8', function(err) {
if (err) throw err;
fs.readFile('log.json', 'utf8', function (err, data) {
if (err) throw err;
console.log(JSON.parse(data));
});
});

关于javascript - 根据用户的输入创建 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30066112/

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