美好的一天,
有没有办法在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");
})
};
P.S我是这里的新手
答案 0 :(得分:1)
编辑:将id转换为字符串。
试试这个
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');
});
答案 1 :(得分:1)
取决于您的需求。使用streams作为众多解决方案之一:
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();