Saya mencoba untuk menulis file JSON menggunakan node dari loop data, misalnya:
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
outPut dalam loop.json adalah:
id :1 square : 1
tapi aku ingin file output seperti ini (di bawah) dan juga jika saya menjalankan kode itu lagi itu harus menambahkan bahwa keluaran baru sebagai elemen yang sama ada file 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
}
]
}
Saya ingin menggunakan file yang sama yang saya buat 1st time tapi setiap kali saya menjalankan kode bahwa unsur-unsur baru harus tambahkan di 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);
}
});
Jika ini json file won't menjadi terlalu besar dari waktu ke waktu anda harus mencoba:
var obj = { tabel: [] }; 2. Tambahkan beberapa data seperti
obj.tabel.push({id: 1, alun-alun:2}); 3. Mengubahnya dari sebuah objek string dengan stringify
var json = JSON.stringify(obj); 4. gunakan fs untuk menulis file ke disk
var fs = require('fs'); fs.writeFile('myjsonfile.json', json, 'utf8', callback);
fs.readFile('myjsonfile.json', 'utf8', fungsi readFileCallback(err, data){ if (err){ konsol.log(err); } else { obj = JSON.mengurai(data); //sekarang ini sebuah objek obj.tabel.push({id: 2, alun-alun:3}); //tambahkan beberapa data json = JSON.stringify(obj); //mengkonversi kembali ke json fs.writeFile('myjsonfile.json', json, 'utf8', callback); // tulis kembali }});
Ini akan bekerja untuk data sebesar 100 MB max secara efektif. Lebih dari batas ini, anda harus menggunakan database engine.
UPDATE:
Membuat fungsi yang mengembalikan tanggal saat ini (tahun+bulan+hari) sebagai string. Membuat file bernama string ini + .json. fs modul ini memiliki fungsi yang dapat memeriksa keberadaan file yang bernama fs.stat(jalan, callback). Dengan ini, anda dapat memeriksa apakah file yang ada. Jika ada, gunakan fungsi membaca jika itu's tidak, gunakan membuat fungsi. Menggunakan tanggal string sebagai jalan cuz file tersebut akan diberi nama sebagai tanggal hari ini + .json. callback akan berisi statistik objek yang akan menjadi batal jika file tidak ada.
Silakan coba program berikut ini. Anda mungkin mengharapkan output ini.
var fs = require('fs');
var data = {}
data.table = []
for (i=0; i <26 ; i++){
var obj = {
id: i,
square: i * i
}
data.table.push(obj)
}
fs.writeFile ("input.json", JSON.stringify(data), function(err) {
if (err) throw err;
console.log('complete');
}
);
Menyimpan program ini di file javascript, mengatakan, square.js.
Kemudian jalankan program command prompt menggunakan perintah node square.js
Apa yang dilakukannya, hanya timpa file yang sudah ada dengan set data baru, setiap kali anda menjalankan perintah.
Happy Coding.
anda harus membaca file, setiap kali anda ingin menambahkan properti baru untuk json, dan kemudian menambahkan properti baru
var fs = require('fs');
fs.readFile('data.json',function(err,content){
if(err) throw err;
var parseJson = JSON.parse(content);
for (i=0; i <11 ; i++){
parseJson.table.push({id:i, square:i*i})
}
fs.writeFile('data.json',JSON.stringify(parseJson),function(err){
if(err) throw err;
})
})
Contoh di atas adalah juga benar, tapi saya berikan contoh sederhana:
var fs = require("fs");
var sampleObject = {
name: 'pankaj',
member: 'stack',
type: {
x: 11,
y: 22
}
};
fs.writeFile("./object.json", JSON.stringify(sampleObject, null, 4), (err) => {
if (err) {
console.error(err);
return;
};
console.log("File has been created");
});
Untuk format jsonfile memberikan ruang
pilihan yang dapat anda lulus sebagai parameter:
jsonfile.writeFile(file, obj, {spaces: 2}, function (err) {
console.error(err);
})
Atau menggunakan jsonfile.ruang = 4
. Baca detail di sini.
Saya tidak akan menyarankan menulis ke file setiap waktu dalam lingkaran, bukan membangun objek JSON dalam lingkaran dan menulis ke file yang di luar lingkaran.
var jsonfile = require('jsonfile');
var obj={
'table':[]
};
for (i=0; i <11 ; i++){
obj.table.push({"id":i,"square":i*i});
}
jsonfile.writeFile('loop.json', obj, {spaces:2}, function(err){
console.log(err);
});
mencoba
var fs = require("fs");
var sampleObject = { your data };
fs.writeFile("./object.json", JSON.stringify(sampleObject, null, 4), (err) => {
if (err) { console.error(err); return; };
console.log("File has been created");
});
Untuk sinkron pendekatan
const fs = require('fs')
fs.writeFileSync('file.json', JSON.stringify(jsonVariable));