如何在Javascript中向此JSON添加一个对象?
P粉476883986
P粉476883986 2024-02-03 23:46:08
[JavaScript讨论组]

我在文件中有这个 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' }
    }

P粉476883986
P粉476883986

全部回复(2)
P粉904405941

你所要做的就是将 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 文件进行存储

P粉536909186

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

const obj = JSON.parse(fs.readFileSync('./datei.json', 'utf8'));
obj['user2'] = {
  "id": 2,
  "nVote": 1,
  "comment": 'test'
};
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号