Я пытаюсь создать бота, который берет информацию из файла info.json и переносит ее в виде богатой вставки в канал Discord.
Моя проблема, с которой я постоянно сталкиваюсь и, похоже, не могу найти решение самостоятельно, заключается в том, что мой информационный файл JSON содержит большое количество массивов, к которым необходимо получить доступ с помощью команды «префикс + имя игрока».
Пример массива в JSON:
{
"playername": "riky",
"age": 20,
"height": 172
}
Поэтому, когда человек хочет найти, например, riky с помощью команды prefix + riky, бот должен вывести всю информацию, содержащуюся в riky: age, height и т. д.
Может ли кто-нибудь помочь мне с чем-то вроде этого?
Я не пытаюсь быть грубым, просто полезным, этот пример не является массивом JSON, а просто JSON. У массива нет связи между ключом и значением, это просто список вещей. В JSON массив будет выглядеть так { "arrayData": ['one', 'two', 'three', 'four', 'something', 'foo', 'bar']}. В этом примере после того, как вы разобрали JSON в объект Javascript, ключом будет arrayData, а значением будет массив.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я использовал fs, чтобы получить ваш файл json. Я делаю цикл for, чтобы просмотреть все ваши массивы json и найти имя игрока, которое вы ввели в своей команде. Если бот находит массив с этим именем игрока, он присваивает возраст и рост новой переменной.
После этого вы можете создать свой RichEmbed и отправить его в канал.
Попробуйте использовать следующий код:
const fs = require('fs');
const Discord = require('discord.js');
const jsonFile = fs.readFile('PATH of your JSON');
const playerName = msg.content.split(' ').slice(1);
let age;
let hight;
for (var i = 0; i < jsonFile.length; i++) {
if (jsonFile[i].playername === playerName) {
age = jsonFile[i].age;
hight = jsonFile[i].hight;
}
}
if (!age || !height) return message.channel.send('Couldn\'t find this player!');
const embed = new Discord.RichEmbed()
.setTitle(playername)
.addField('Age', age)
.addField('Hight', hight);
message.channel.send({ embed });
Непонятно что за префикс, можете выложить структуру всего json?