Estoy tratando de escribir un archivo JSON usando el nodo de datos de bucle, por ejemplo:
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
outPut in loop.json es:
id :1 square : 1
pero quiero un archivo de salida como este (a continuación) y también si ejecuto ese código nuevamente, debería agregar esa nueva salida como elementos en el mismo archivo 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
}
]
}
Quiero usar el mismo archivo que creé la primera vez, pero cada vez que ejecuto ese código, deben agregarse nuevos elementos en ese mismo archivo
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);
}
});
fuente
Por favor, intente el siguiente programa. Es posible que esté esperando esta salida.
Guarde este programa en un archivo javascript, por ejemplo, square.js.
Luego ejecute el programa desde el símbolo del sistema con el comando
node square.js
Lo que hace es, simplemente sobrescribir el archivo existente con un nuevo conjunto de datos, cada vez que ejecuta el comando.
Feliz codificación.
fuente
debe leer el archivo cada vez que desee agregar una nueva propiedad al json y luego agregar las nuevas propiedades
fuente
El ejemplo anterior también es correcto, pero proporciono un ejemplo simple:
fuente
tratar
fuente
Para formatear jsonfile da la
spaces
opción que puede pasar como parámetro:O utilice
jsonfile.spaces = 4
. Lea los detalles aquí .No sugeriría escribir en el archivo cada vez en el bucle, en su lugar, construya el objeto JSON en el bucle y escriba en el archivo fuera del bucle.
fuente
Para aproximación sincrónica
fuente