我正在使用 API,我想提取 API URL,為此我撰寫了一個代碼,但只出現了一個 url,我將給出 API 的 JSON 代碼示例。更不用說標題來了,然后是第一個標題,然后是 URL
{
"items": [
{ "title":"YouTube", "url":"https://www.youtube.com/"},
{ "title":"Google", "url":"https://www.google.com/"},
{ "title":"Facebook", "url":"https://www.facebook.com/"},
{ "title":"Github", "url":"https://www.github.com"},
{ "title":"Microsoft", "url":"https://www.microsoft.com"}
]
}
不完全是這些網址,我以它為例。
我想提取這些資訊并留下如下:
[Title](Url)
我希望它看起來像這樣,因為標題會變成藍色,并且當您單擊它時會轉到站點 URL。
我沒有成功的代碼是這樣的:
let response, channel, info;
try {
response = await axios.get(url)
channel = response.data
info = channel.items[0]
} catch (e) {
return message.channel.send(`Error`)
}
let btn = new disbut.MessageButton()
.setLabel("Site")
.setStyle("url")
.setURL("https://youtube.com")
const embed = new MessageEmbed()
.setColor("#ffff00")
.setDescription(`[${info.title}](${info.url})\n`)
await message.channel.send({
embed: embed,
buttons: btn
});
這個 info.url 是你獲取 URL 的地方, info.title 是你獲取標題的地方,只有 1 個問題,它只需要 1 個標題和 1 個 url,我希望你把它們都拿走并在 The不和諧機器人
這是代碼的結果:
但我希望它看起來像這樣: Youtube Google Facebook Github Microsoft
為了只顯示 youtube,我需要您顯示至少 1 個和最多 10 個。當您單擊每個標題時,將被重定向到該站點。
uj5u.com熱心網友回復:
infoonly 指的是channel.items[0],這是第一項
您可以使用<Array>.map將專案映射到您的[]()格式,然后<Array>.join將它們連接成由換行符分隔的字串。
.setDescription(channel.items.map(info => `[${info.title}](${info.url})`).join('\n'))
uj5u.com熱心網友回復:
您需要將items陣列格式化為Markdown list。
將channel.items陣列映射到串列項字串陣列,然后用換行符將整個事物連接在一起。
.setDescription(
channel.items.map(info => `* [${info.title}](${info.url})`).join("\n")
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/408020.html
標籤:
