【问题标题】:Fetching and saving user IDs to individual guilds获取用户 ID 并将其保存到各个公会
【发布时间】:2019-03-18 23:12:33
【问题描述】:

基本上我想做的是读取一个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 的变量。我可能把它弄复杂了,但有人可以帮忙吗?我也想保存文件。谢谢。

【问题讨论】:

  • 而不是“让我们说”,最好在示例中给出实际的 JSON。您的示例不是有效的 JSON 格式。

标签: javascript node.js discord.js


【解决方案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 属性,这将添加一个属性!另见jsFiddle

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

【讨论】:

  • 谢谢,明天我会看看它,我会尝试让它工作。如果出现问题,我会问你是否介意。
  • 好的,很抱歉这么久没有回复,但我很忙。无论如何,感谢您的回答,它有效! :D 再次感谢您。不过需要注意的是,我更喜欢通过执行“if (!data["guild1"]["userID"]) {Do something} 来检查某些属性是否存在。我认为它更容易和更清晰。
猜你喜欢
  • 2016-05-17
  • 2021-08-05
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多