提取用户ID并将其保存到各个行会

时间:2019-03-17 20:16:00

标签: javascript node.js discord.js

基本上我想做的是读取一个json文件,首先从该文件中获取公会的ID,然后在该公会中搜索用户的ID。

假设这是json文件的示例:

{Guilds ID}:
    {Users ID}:
        Value: "Yes"
        Value2: "No"
    {Users ID}:
        Value: "Yes"
        Value2: "No"
{Guilds ID}:
    {Users ID}:
        Value: "Yes"
        Value2: "No"
    {Users ID}:
        Value: "Yes"
        Value2: "No"

我尝试使用:

Variable[message.guild.id] = {
    User: "User ID"
    }

但这不能真正起作用,因为我不能像这样仅获取特定用户ID的变量。我可能把它弄复杂了,但是有人可以帮忙吗?我也想保存文件。谢谢。

1 个答案:

答案 0 :(得分:1)

以下内容如何:

var data = {
  "guild1": {
    "userId1": {
      "Value": "Yes",
      "Value2": "No"
    },
    "userId2": {
      "Value": "Yes",
      "Value2": "No"
    }
  },
  "guild2": {
    "userId3": {
      "Value": "Yes",
      "Value2": "No"
    }
  }
}

if (data["guild1"].hasOwnProperty("userId2")) {
  console.log("Value for userId2 in guild1: " + data["guild1"]["userId2"].Value);
}

if (!data["guild1"].hasOwnProperty("userId5")) {
  data["guild1"]["userId5"] = {
    "Value": "Yes",
    "Value2": "No"
  }
}
console.log("Added new user userId5 to guild1")

如果您的JSON数据结构由嵌套对象(公会对象包含用户对象)组成,则可以使用hasOwnProperty()方法检查用户是否属于公会,如上例所示。请注意,请勿使用data["guild1"]["userId<x>"],因为如果给定的行会中不存在属性"userId<x>": undefined,则会添加属性{{1}}!另请参见jsFiddle

编辑:正如您还问如何将用户添加到公会中,我已经扩展了我的示例。关于读写JSON,请看这里:reading and writing json file using javascript