将数组保存到JSON文件,然后使用Array.push()将数据保存在其中

问题描述 投票:0回答:2

我正在创建一个日历程序,我的目标是在JSON文件中保存事件等。我认为最好的方法是将数组存储在JSON文件中的数组中(这样我可以迭代遍历每个数组并在程序启动时加载它们)。

首先:如何将数组推入JSON数组?有什么建议?比方说,我有变量var event,它等于{"id": elementTitle, "year": year, "month": month, "day": day};的数组JSON.stringify(event)。那么如何将其保存到已在JSON文件中创建的数组中?:events = { }

顺便说一下,这个程序是用电子api创建的,也使用node.js.

javascript html css arrays json
2个回答
1
投票

你可以这样做。

使用[]声明事件,表示它是一个数组。

//file.JSON

{
  "events":[]
}

使用节点文件系统或“fs”模块,您可以读取和写入文件。下面的示例使用异步读取和写入,因此应用程序不会停止和等待 - 但您也可以同步执行此操作。

//app.就是

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!
            }});
   }

});

More examples


0
投票

我有变量var事件,它等于数组{“id”:elementTitle,“year”:year,“month”:month,“day”:day}

这不是一个数组,它是一个对象

无论如何,你修改保存到磁盘的json的方法是从磁盘读取它,JSON.parseing它到javascript对象(或数组)修改它并用新对象(或数组)重写文件

© www.soinside.com 2019 - 2024. All rights reserved.