为了账号安全,请及时绑定邮箱和手机立即绑定

向 JSON 添加对象

向 JSON 添加对象

月关宝盒 2021-11-18 20:34:09
我有一个settings.json包含以下数据的文件(其中123456789是一个不同的用户 ID):{ "123456789":   {"button_mode":true}}所以我需要做的是将一个类似的id: {button_mode: value}对象推送到这个 JSON 文件,以防当前用户的 id 没有条目。我尝试使用lcSettings.push()但显然它不起作用,因为我有一个对象,而不是数组。当我用方括号而不是花括号将它变成一个数组时,我的代码根本不做任何事情。这是它的一个片段(Node.js):var lcSettings = JSON.parse(fs.readFileSync('./settings.json', 'utf8'));var currentUser = id;if (lcSettings.hasOwnProperty(currentUser)) {   // in case settings.json contains current user's id check for button_mode state   if (lcSettings[currentUser].button_mode == true) {      // if button_mode is on   } else   if (lcSettings[currentUser].button_mode == false) {      // if button_mode is off   }} else {   // in case there's no entry for current user's id   // here's where I need to push the object for new user.}fs.writeFileSync('./settings.json', JSON.stringify(lcSettings))有人对如何实施它有想法吗?任何帮助表示赞赏。
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

您可以使用括号表示法向对象添加动态属性:

lcSettings[id] = { button_mode: false };

您可能还想验证它settings.json不为空,否则JSON.parse()将失败。在这种情况下,您可能希望初始化lcSettings为一个空对象 ( lcSettings = {}) 以便上述操作有效。


查看完整回答
反对 回复 2021-11-18
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

要将元素“推”到一个对象,您只需定义它们,如

object['123456789'] = { button_mode: true };


查看完整回答
反对 回复 2021-11-18
  • 2 回答
  • 0 关注
  • 371 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信