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

时间:2018-03-05 20:06:28

标签: javascript html css arrays json

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

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

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

2 个答案:

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

});

More examples

答案 1 :(得分:0)

  

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

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

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