将带有NodeJS循环的json对象复制到JSON文件中

美好的一天,

有没有办法在NodeJS中做一个for循环,并将相同的json对象,但不同的'id'复制到JSON文件中。

比方说,我想以这种格式添加100个对象:

[ { "id": 1, "Firstname": "Sven","Secondname": "Petersen","Age": "18" }]

当服务器启动时。

什么是最好的方式来做到这一点? 我应该使用哪些模块?

我以为我可以做这样的事情:

 for (var i = 0; i < 500; i++) { fs.readFile("JSON/DB.json", "utf8", function () { var data = '[{ "id": 1, "Firstname": "Sven", "Secondname": "Petersen", "Age": "18", }]' var Data = JSON.parse(data); var id = i; for (var i = 0; i < Data; i++) { }; var newData = JSON.stringify(Data); fs.writeFile("JSON/DB.json", newData, "utf8"); }) }; 

PS我是一个新手在这里

编辑:将id转换为string。

尝试这个

 var fs = require('fs'); var jsonObj = '{ "id":"1","firstname": "Sven","secondname": "Petersen","age":"18" }' var data = JSON.parse(jsonObj) var newDataArray = [] function ObjectCreate (id, firstname, secondname, age) { this.id = id.toString(); this.firstname = firstname; this.secondname = secondname; this.age = age; } for (var i = 1; i < 100; i++) { var obj = new ObjectCreate (i, data.firstname, data.secondname, data.age); newDataArray.push(obj); } var writeObject = JSON.stringify(newDataArray) fs.writeFile('data.json', writeObject, function(err) { if(err) throw err; console.log('done'); }); 

取决于你的需求。 使用stream作为众多解决scheme之一:

 const fs = require('fs'); const PATH_TO_FILE = 'path/to/file'; let data = { id: null, value: 'some value' }; let stream = fs.createWriteStream(PATH_TO_FILE); //error handler stream.on('error', function (error) { }); for(let i = 1; i < 501; i++) { data.id = i; stream.write(JSON.stringify(data)); } stream.end();