当前位置: 首页 > 知识库问答 >
问题:

使用node.js在JSON文件中写入/添加数据

冷浩瀚
2023-03-14
let jsonFile = require('jsonfile');

for (i = 0; i < 11; i++) {
    jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
id :1 square : 1
{
   "table":[
      {
         "Id ":1,
         "square ":1
      },
      {
         "Id ":2,
         "square ":3
      },
      {
         "Id ":3,
         "square ":9
      },
      {
         "Id ":4,
         "square ":16
      },
      {
         "Id ":5,
         "square ":25
      },
      {
         "Id ":6,
         "square ":36
      },
      {
         "Id ":7,
         "square ":49
      },
      {
         "Id ":8,
         "square ":64
      },
      {
         "Id ":9,
         "square ":81
      },
      {
         "Id ":10,
         "square ":100
      }
   ]
}
const fs = require('fs');

let obj = {
    table: []
};

fs.exists('myjsonfile.json', function(exists) {

    if (exists) {

        console.log("yes file exists");

        fs.readFile('myjsonfile.json', function readFileCallback(err, data) {

            if (err) {
                console.log(err);
            } else {
                obj = JSON.parse(data);

                for (i = 0; i < 5; i++) {
                    obj.table.push({
                        id: i,
                        square: i * i
                    });
                }

                let json = JSON.stringify(obj);
                fs.writeFile('myjsonfile.json', json);
            }
        });
    } else {

        console.log("file not exists");

        for (i = 0; i < 5; i++) {
            obj.table.push({
                id: i,
                square: i * i
            });
        }

        let json = JSON.stringify(obj);
        fs.writeFile('myjsonfile.json', json);
    }
});

共有1个答案

印晋
2023-03-14

如果这个JSON文件不会随着时间的推移变得太大,那么您应该尝试:

>

  • 创建一个包含表数组的JavaScript对象

    var obj = {
       table: []
    };
    

    向其中添加一些数据,例如:

    obj.table.push({id: 1, square:2});
    
    var json = JSON.stringify(obj);
    
    var fs = require('fs');
    fs.writeFile('myjsonfile.json', json, 'utf8', callback);
    
    fs.readFile('myjsonfile.json', 'utf8', function readFileCallback(err, data){
        if (err){
            console.log(err);
        } else {
        obj = JSON.parse(data); //now it an object
        obj.table.push({id: 2, square:3}); //add some data
        json = JSON.stringify(obj); //convert it back to json
        fs.writeFile('myjsonfile.json', json, 'utf8', callback); // write it back 
    }});
    

    这将有效地适用于高达100 MB的数据。超过这个限制,您应该使用数据库引擎。

    更新:

    创建一个函数,以字符串形式返回当前日期(年+月+日)。创建名为this string+.json的文件。fs模块有一个函数可以检查文件是否存在,名为fs.stat(path,callback)。有了这个,你可以检查文件是否存在。如果它存在,则使用read函数;如果它不存在,则使用create函数。使用日期字符串作为路径,因为文件将被命名为today date+.json。回调将包含一个stats对象,如果文件不存在,该对象将为null。

  •  类似资料:
    • 问题内容: 我正在尝试使用节点从循环数据中写入JSON文件,例如: loop.json中的outPut是: 但是我想要这样的输出文件(如下),而且如果我再次运行该代码,它应该将该新输出添加为相同的现有JSON文件中的元素: 我想使用第一次创建的相同文件,但是每当我运行该代码时,新元素都应添加到该文件中 问题答案: 如果随着时间的推移该json文件不会变得太大,您应该尝试: 创建一个具有表数组的ja

    • 问题内容: 我一直在尝试找到一种使用Node.js时写入文件的方法,但是没有成功。我怎样才能做到这一点? 问题答案: 文件系统API中有很多详细信息。最常见的方法是:

    • 问题内容: 我一直在尝试找到一种使用Node.js时写入文件的方法,但是没有成功。我怎样才能做到这一点? 问题答案: 文件系统API中有很多详细信息。最常见的方法是:

    • 问题内容: 我已经在stackoverflow / google上搜索了所有内容,但似乎无法弄清楚。 我正在抓取给定URL页面的社交媒体链接,并且该函数返回带有URL列表的对象。 当我尝试把这些数据写入到不同的文件,将其输出到文件,而不是预期:“ https://twitter.com/#!/101Cookbooks ”,’ http://www.facebook.com/ 101cookbook

    • 问题内容: 我有一个很少设置参数的jenkins作业,并且在工作区中有一个JSON文件,该文件必须使用通过jenkins传递的参数进行更新。 例: 我有以下参数,我将从触发作业的用户那里获取输入: 环境(考虑用户选择“ ENV2”) 文件名(考虑用户保留默认值) 我的工作空间中有一个json文件,位于run / job.json下,内容如下: 现在,用户在触发作业之前给定的任何值都必须在job.j

    • 问题内容: 我正在制作一个混合移动应用程序,我需要存储一些数据,例如,如果它是一个游戏:高分等..到目前为止,它能够使用jquery从JSON文件中读取数据..,但是是否可以写到JSON文件??! 还是有其他方法可以这样做? IDE-Eclipse(插件-IBM Worklight Studio) 只能使用HTML 5以及JS和JQ! 谢谢 (: 问题答案: 您可以将JSON写入本地存储,而只需使