我正在创建一个日历程序,我的目标是在JSON文件中保存事件等。 我认为最好的方法是将数组存储在JSON文件中的数组中(这样我可以迭代遍历每个数组并在程序启动时加载它们)。
首先:如何在JSON中将数组推入数组?有什么建议?比方说,我的变量var event
等于将被{"id": elementTitle, "year": year, "month": month, "day": day};
'编辑的数组JSON.stringify(event)
。那么如何将其保存到已在JSON文件中创建的数组中?:events = { }
。
顺便说一下,这个程序是用电子api创建的,也是使用node.js。
答案 0 :(得分:1)
你可以这样做。
使用[]声明事件,表示它是一个数组。
// file.json
{
"events":[]
}
使用节点文件系统或" fs"模块,您可以读取和写入您的文件。下面的示例使用异步读取和写入,因此应用程序不会停止和等待 - 但您也可以同步执行此操作。
// app.js
let fs = require('fs');
fs.readFile('/path/to/local/file.json', 'utf8', function (err, data) {
if (err) {
console.log(err)
} else {
const file = JSON.parse(data);
file.events.push({"id": title1, "year": 2018, "month": 1, "day": 3});
file.events.push({"id": title2, "year": 2018, "month": 2, "day": 4});
const json = JSON.stringify(file);
fs.writeFile('/path/to/local/file.json', json, 'utf8', function(err){
if(err){
console.log(err);
} else {
//Everything went OK!
}});
}
});
答案 1 :(得分:0)
我的变量var事件等于数组{“id”:elementTitle,“year”:year,“month”:month,“day”:day}
这不是一个数组,它是一个对象
无论如何,你修改保存到磁盘的json的方法是从磁盘读取它,JSON.parse
将它修改为javascript对象(或数组)修改它并重新写入文件新对象(或数组)