查找字符串是否在 json 文件中,然后获取它周围的内容

Find if a string is in a json file, then get the stuff around it

所以我对 JSON 了解不多,我正在为一个游戏制作一个机器人,你可以向它发送消息,它会向你发送一个代码,然后你将代码发送到我的 discord 机器人 link 您的帐户。我这样做是为了让机器人在游戏中成为好友时它接受请求并向用户发送一条消息,其中包含随机生成的 5 个字符代码,然后与他们的玩家 ID 一起存储在 users.json 中,并且显示名称。我现在已经完成了 bot 部分,主要是 discord 部分,我需要查找他们输入的代码是否在 json 文件中,然后获取与该代码一起使用的 displayName。如果这有道理...

这里 users.json 只有一个条目:

{"users":[{"name":"ImBattleDash","Id":"34a02cf8f4414e29b15921876da36f9a","code":"5MJS3"}]}

这是要添加到其中的代码:

        fs.readFile('./users.json', 'utf-8', function(err, data) {
        if (err) throw err

        var arrayOfObjects = JSON.parse(data)
        arrayOfObjects.users.push({
            name: userAuthorName,
            Id: userAuthor,
            code: authorCode
        })

        console.log(arrayOfObjects)

        fs.writeFile('./users.json', JSON.stringify(arrayOfObjects), 'utf-8', function(err) {
            if (err) throw err
            console.log('Done!')
        })

我基本上需要的是在 Json 文件中搜索,例如,如果其中一个代码是“5MZJ2”,如果是,则获取与之对应的名称并将其设置为一个变量。

我一直在努力弄清楚如何去做,但我仍然是一个初学者,所以如果能提供一些帮助,我们将不胜感激!

一个快速的方法是使用 find() 方法,一个解决方案是:

let myCode = "5MJS3"
fs.readFile('./users.json', 'utf-8', function (err, data) {
    if (err) throw err

    var arrayOfObjects = JSON.parse(data)
    let myEntry = arrayOfObjects.users.find(entry => entry.code == myCode)

    console.log(myEntry.name)
})

它基本上会遍历您的列表并查找与代码相匹配的条目:)