如何在JavaScript中向JSON对象添加新的用户对象?
问题分析
你现在的代码踩了两个关键坑:
- 完全没必要把原JSON对象转成数组,你最终要的是键值对形式的对象结构(user1、user2作为key),转数组反而把原本的结构彻底打乱了。
- 你创建的
user是数组,却硬给它加user2属性(数组本质是特殊对象,但这么做完全不符合你的需求),最后把这个不伦不类的数组push到之前转出来的数组里,结果自然变成了数组套数组,和目标格式差得远。
正确实现代码
直接在解析后的原对象上添加新用户属性就行,不用绕数组的弯路:
const fs = require('fs'); // 读取并解析JSON文件为对象 const obj = JSON.parse(fs.readFileSync('./datei.json', 'utf8')); // 直接给原对象新增user2属性 obj['user2'] = { "id": 2, "nVote": 1, "comment": 'test' }; // 如果需要把修改后的结果写回文件,执行这行 fs.writeFileSync('./datei.json', JSON.stringify(obj, null, 2), 'utf8');
最终结果
执行后得到的对象结构就是你想要的:
{ "user1": { "id": 1, "nVote": 0, "comment": "" }, "user2": { "id": 2, "nVote": 1, "comment": "test" } }
内容的提问来源于stack exchange,提问作者Axel
相关产品推荐
相关产品推荐

