Я пытаюсь записать файл JSON, используя узел из данных цикла, например:
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
outPut в loop.json:
id :1 square : 1
но мне нужен выходной файл, подобный этому (ниже), а также, если я снова запускаю этот код, он должен добавить этот новый вывод как элементы в тот же существующий файл JSON:
{
"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
}
]
}
Я хочу использовать тот же файл, который я создал 1 раз, но всякий раз, когда я запускаю этот код, новые элементы должны добавляться в тот же файл
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);
}
});
источник
Пожалуйста, попробуйте следующую программу. Вы можете ожидать этого выхода.
Сохраните эту программу в файле JavaScript, скажем, square.js.
Затем запустите программу из командной строки, используя команду
node square.js
Он просто перезаписывает существующий файл новым набором данных при каждом выполнении команды.
Удачного кодирования.
источник
Вы должны читать файл, каждый раз, когда вы хотите добавить новое свойство в JSON, а затем добавить новые свойства
источник
Приведенный выше пример также верен, но я приведу простой пример:
источник
пытаться
источник
Для форматирования jsonfile предоставляет
spaces
опцию, которую вы можете передать в качестве параметра:Или используйте
jsonfile.spaces = 4
. Подробности читайте здесь .Я бы не советовал записывать в файл каждый раз в цикле, вместо этого создаю объект JSON в цикле и записываю в файл вне цикла.
источник
Для синхронного подхода
источник