Найти, если строка находится в файле JSON, а затем получить материал вокруг него - PullRequest
0 голосов
/ 23 января 2019

Так что я не очень разбираюсь в JSON, я создаю бота для игры, о котором вы можете написать, и он отправляет вам код, который вы затем отправляете моему боту-разногласиям, чтобы связать вашу учетную запись. Я делаю это, делая так, чтобы всякий раз, когда бот подружился в игре, он принимал запрос и отправлял сообщение пользователю с 5-символьным кодом, который генерируется случайным образом и затем сохраняется в users.json с их идентификатором игрока и отображаемым именем. Я закончил с частью бота, в основном только с диссонансом, мне нужно найти, находится ли код, который они вводят, в файле 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», и если это так, то получить имя, которое соответствует этому, и установить его в переменную.

Я пытался выяснить, как это сделать, но я все еще начинающий, так что некоторая помощь будет принята!

1 Ответ

0 голосов
/ 23 января 2019

Быстрый способ сделать это - использовать метод 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)
})

Он в основном просматривает ваш список и ищет записькод:)

...