最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

将数据添加到JSON对象

IT培训 admin 4浏览 0评论

将数据添加到JSON对象

我有一个settings.json文件,其中包含以下数据(其中123456789是不同的用户ID):

{
 "123456789":
   {"button_mode":true}
}

所以我需要做的是在当前用户ID没有条目的情况下,将类似的id: {button_mode: value}对象推送到此JSON文件。我尝试使用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))

关于如何实施的任何想法?任何帮助表示赞赏。

回答如下:

您可以使用bracket notation向对象添加动态属性:

lcSettings[id] = { button_mode: false };

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

将数据添加到JSON对象

我有一个settings.json文件,其中包含以下数据(其中123456789是不同的用户ID):

{
 "123456789":
   {"button_mode":true}
}

所以我需要做的是在当前用户ID没有条目的情况下,将类似的id: {button_mode: value}对象推送到此JSON文件。我尝试使用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))

关于如何实施的任何想法?任何帮助表示赞赏。

回答如下:

您可以使用bracket notation向对象添加动态属性:

lcSettings[id] = { button_mode: false };

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

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论