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

标签 javascript node.js json string discord.js

所以我对 JSON 不太了解,我正在为一个游戏制作一个机器人,你可以向它发送消息,它会向你发送一个代码,然后你将其发送到我的不和谐机器人以链接你的帐户。我这样做的方法是,每当机器人在游戏中加入好友时,它就会接受请求,并向用户发送一条消息,其中包含随机生成的 5 个字符代码,然后将其与玩家 ID 和显示名称一起存储在 users.json 中。我现在已经完成了 bot 部分,主要是不和谐部分,我需要查找它们输入的代码是否在 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)
})

它基本上会遍历您的列表并查找对代码进行数学运算的条目:)

关于javascript - 查找某个字符串是否在 json 文件中,然后获取它周围的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54321583/

相关文章:

javascript - 为什么这个 jquery 代码没有删除 li 列表项?

javascript - 在node-red中创建二进制有效负载

javascript - AJAX 返回 200 成功但无法解析响应 JSON

java - Volley 请求总是进入错误监听器

arrays - 如何在数组中保存多个json对象

javascript - python 列表到 javascript 数组

javascript - 如何测试包含异步函数的nodejs导出

javascript - 如何在 openSUSE 上使用 NGINX 或 Apache2 将端口 80 重新路由到 localhost :3000 so I can run my Node. js 应用程序

javascript - 列出来自 Azure Blob 存储的 Blob 和 Node.js 中的 Readstream

javascript - 使用pdfMake创建PDF后如何下载zip文件