Rumah > Soal Jawab > teks badan
Saya mempunyai JSON ini dalam fail:
{ "user1": { "id": 1, "nVote": 0, "comment": "" } }
Saya ingin menambah objek user2 dengan parameter yang sama dan nilai yang sepadan.
function json2Array(json) { var result = []; var keys = Object.keys(json); keys.forEach(function (key) { result.push(json[key]); }); return result; } const fs = require('fs'); const obj = JSON.parse(fs.readFileSync('./datei.json', 'utf8')); const arObj = json2Array(obj); let user = []; user['user2'] = { "id": 2, "nVote": 1, "comment": 'test' }; arObj.push(user);
Hasil:
[ { id: 1, nVote: 0, comment: '' }, [ user2: { id: 2, nVote: 1, comment: 'test' } ] ]
Tetapi saya mahu berakhir dengan keputusan ini:
{ "user1": { id: 1, nVote: 0, comment: '' }, "user2": { id: 2, nVote: 1, comment: 'test' } }
P粉9044059412024-02-04 15:15:16
Apa yang anda perlu lakukan ialah merawat objek json sebagai tatasusunan
Mudah
Renung-renungkan
[
{user1:{"id":2,"nVote":1,...}}
{user2:{"id":2,"nVote":1,...}}
]
Jadi
const obj = [] obj.push({user1:{id:2,nVote:2}) obj.push(({user2:{id:3,nVote:1})
Inilah yang anda perlukan, kemudian anda boleh menggunakan fs untuk mengekstraknya ke fail json untuk penyimpanan
P粉5369091862024-02-04 11:46:41
Jika hasil yang anda inginkan adalah objek, tidak perlu menukarnya kepada tatasusunan. Hanya tambahkan harta pada objek.
const obj = JSON.parse(fs.readFileSync('./datei.json', 'utf8')); obj['user2'] = { "id": 2, "nVote": 1, "comment": 'test' };