Saya mencoba menulis file JSON menggunakan node dari data loop, misalnya:
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
outPut di loop.json adalah:
id :1 square : 1
tapi saya ingin file output seperti ini (di bawah) dan juga jika saya menjalankan kode itu lagi itu harus menambahkan output baru sebagai elemen dalam file JSON yang sama:
{
"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
}
]
}
Saya ingin menggunakan file yang sama yang saya buat pertama kali tetapi setiap kali saya menjalankan kode itu elemen baru harus ditambahkan dalam file yang sama
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);
}
});
sumber
Silakan coba program berikut ini. Anda mungkin mengharapkan output ini.
Simpan program ini dalam file javascript, katakanlah, square.js.
Kemudian jalankan program dari command prompt menggunakan perintah
node square.js
Apa yang dilakukannya adalah, cukup menimpa file yang ada dengan set data baru, setiap kali Anda menjalankan perintah.
Selamat Coding.
sumber
Anda harus membaca file, setiap kali Anda ingin menambahkan properti baru ke json, dan kemudian menambahkan properti baru
sumber
Contoh di atas juga benar, tetapi saya memberikan contoh sederhana:
sumber
mencoba
sumber
Untuk memformat jsonfile memberikan
spaces
opsi yang dapat Anda berikan sebagai parameter:Atau gunakan
jsonfile.spaces = 4
. Baca detail di sini .Saya tidak akan menyarankan menulis ke file setiap kali dalam loop, sebagai gantinya membangun objek JSON dalam loop dan menulis ke file di luar loop.
sumber
Untuk pendekatan yang sinkron
sumber