Bagaimanakah saya boleh menambah objek pada JSON ini dalam Javascript?
P粉476883986
P粉476883986 2024-02-03 23:46:08
0
2
335

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粉476883986
P粉476883986

membalas semua(2)
P粉904405941

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粉536909186

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'
};
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan