如何使用我没有的信息(如变量)调用JSON数据

时间:2019-04-17 18:28:24

标签: node.js json discord.js

我正在编写一个不和谐的bot,但目前我遇到了我以前从未使用过的东西,也不知道该怎么办

我尝试使用变量名,但这不起作用,因为它认为我正在JSON文件中查看它

Node.JS代码:

if (command == 'untrust') {
    if (msg.author.id == '341761972142080002') {
        const tUser = msg.guild.member(msg.mentions.users.first()) || msg.guild.members.get(args[0])
        for(i = 0; i < trust.length; i++) {
            if (trust[tUser.user["username"]].id === tUser.user.id) {
                let splitter = trust[tUser.user["username"]].id
                console.log(splitter)
                } else {
                  console.log('not it');
               }
            }
         }
        fs.writeFile('./trusted.json', trust, (err) => {
            console.log(err);
        });
    }
}

JSON:

{"discordaccountname1":{"id":"354405790645354499"}, "discordaccountname2":{"id":"354405790645354499"}}

我希望结果能够深入到JSON文件中,并使用变量名中的用户信息在JSON中找到路径,但是它无法做到这一点。

1 个答案:

答案 0 :(得分:-1)

如果我正确理解了您的问题,则可以像这样使用bracket notationtrust[tUser.user.id](您应该始终存储ID而不是用户名)。

更新
为了您的目的,应该像这样设置JSON文件:

{
  '189855563893571595': ['1234', '5678']
}

这更具可读性,更易于使用。 trust[message.author.id]只是他们信任的用户的数组。然后,您可以使用for循环进行遍历。同样,请始终存储ID(静态)而不是用户名(动态)。