如何在JavaScript中向JSON添加对象?

6bc51xsx  于 2023-06-25  发布在  Java
关注(0)|答案(2)|浏览(154)

我在一个文件中有这个JSON:

{
  "user1": {
    "id": 1,
    "nVote": 0,
    "comment": ""
  }
}

我想添加一个对象user2,它具有相同的参数和相应的值。

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);

其结果是:

[
      { id: 1, nVote: 0, comment: '' },
      [ user2: { id: 2, nVote: 1, comment: 'test' } ]
    ]

但我想最终得出这样的结果:

{
      "user1": { id: 1, nVote: 0, comment: '' },
      "user2": { id: 2, nVote: 1, comment: 'test' }
    }
kmpatx3s

kmpatx3s1#

如果您想要的结果是一个对象,则无需将其转换为数组。只需向对象添加一个属性。

const obj = JSON.parse(fs.readFileSync('./datei.json', 'utf8'));
obj['user2'] = {
  "id": 2,
  "nVote": 1,
  "comment": 'test'
};
vlf7wbxs

vlf7wbxs2#

你所要做的就是把JSON对象当作数组
简单
考虑一下

[
{user1:{"id":2,"nVote":1,...}}
{user2:{"id":2,"nVote":1,...}}
]

所以

const obj = []
obj.push({user1:{id:2,nVote:2})
obj.push(({user2:{id:3,nVote:1})

这就是您所需要的全部内容,然后您可以使用fs将其提取到JSON文件中

相关问题