J'essaie d'écrire un fichier JSON en utilisant un nœud à partir de données de boucle, par exemple:
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
outPut in loop.json est:
id :1 square : 1
mais je veux un fichier de sortie comme celui-ci (ci-dessous) et aussi si je réexécute ce code, il devrait ajouter cette nouvelle sortie en tant qu'éléments dans le même fichier JSON existant:
{
"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
}
]
}
Je veux utiliser le même fichier que j'ai créé la première fois, mais chaque fois que j'exécute ce code, de nouveaux éléments doivent être ajoutés dans ce même fichier
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);
}
});
la source
Veuillez essayer le programme suivant. Vous attendez peut-être cette sortie.
Enregistrez ce programme dans un fichier javascript, disons, square.js.
Exécutez ensuite le programme à partir de l'invite de commande à l'aide de la commande
node square.js
Ce qu'il fait, c'est simplement remplacer le fichier existant par un nouvel ensemble de données, chaque fois que vous exécutez la commande.
Codage heureux.
la source
vous devez lire le fichier, chaque fois que vous souhaitez ajouter une nouvelle propriété au json, puis ajouter les nouvelles propriétés
la source
L'exemple ci-dessus est également correct, mais je fournis un exemple simple:
la source
essayer
la source
Pour le formatage, jsonfile donne une
spaces
option que vous pouvez passer en paramètre:Ou utilisez
jsonfile.spaces = 4
. Lisez les détails ici .Je ne suggérerais pas d'écrire dans un fichier à chaque fois dans la boucle, mais plutôt de construire l'objet JSON dans la boucle et d'écrire dans un fichier en dehors de la boucle.
la source
Pour une approche synchrone
la source