Estou tentando escrever o arquivo JSON usando o nó dos dados do loop, por exemplo:
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
outPut em loop.json é:
id :1 square : 1
mas eu quero um arquivo de saída como este (abaixo) e também se eu executar esse código novamente, ele deverá adicionar essa nova saída como elementos no mesmo arquivo JSON existente:
{
"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
}
]
}
Quero usar o mesmo arquivo que criei pela primeira vez, mas sempre que executo esse código, novos elementos devem ser adicionados ao mesmo arquivo
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);
}
});
fonte
Por favor, tente o seguinte programa. Você pode estar esperando esta saída.
Salve este programa em um arquivo javascript, por exemplo, square.js.
Em seguida, execute o programa no prompt de comando usando o comando
node square.js
O que ele faz é simplesmente substituir o arquivo existente por um novo conjunto de dados, toda vez que você executar o comando.
Feliz codificação.
fonte
você deve ler o arquivo sempre que desejar adicionar uma nova propriedade ao json e, em seguida, adicionar as novas propriedades
fonte
O exemplo acima também está correto, mas eu forneço um exemplo simples:
fonte
experimentar
fonte
Para formatar, o jsonfile dá a
spaces
opção que você pode passar como parâmetro:Ou use
jsonfile.spaces = 4
. Leia os detalhes aqui .Eu não sugeriria escrever um arquivo toda vez no loop, em vez disso, construir o objeto JSON no loop e gravar no arquivo fora do loop.
fonte
Para abordagem síncrona
fonte