所以我对 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/