arrays - 如何在 nodejs 中解析 PokeAPI 的 [Obect] 和 [Array]
问题描述
这是我在 stackoverflow 上的第一篇文章。
我目前正在开发一个不和谐的机器人。我现在正在尝试添加命令以查看口袋妖怪统计信息。
到目前为止,我已经能够获得口袋妖怪的名称、ID 和重量。这很好,但我觉得可以从 API 中获取更多数据。
这是我当前的代码:
const Discord = require('discord.js');
const { RichEmbed } = require('discord.js');
const fetch = require('node-fetch');
const Command = require('../../../base/Command.js');
class pokemonLookup extends Command {
constructor(client) {
super(client, {
name: 'pokesearch',
description: 'Look up a pokemon!',
aliases: ['ps'],
guildOnly: false,
ownerOnly: false,
category: 'Pokemon',
extended: 'Search some information about any pokemon. (Correct spelling is required.'
})
}
async run(message, args) {
let pokemon = args[0];
fetch(`https://pokeapi.co/api/v2/pokemon/${pokemon}`)
.then(res => res.json())
.then(data => {
const name = data.species.name;
const url = data.species.url;
const weight = data.weight / 10;
const em = new RichEmbed();
em.setTitle('Pokemon Stats');
em.setDescription(`Name: [${name.toUpperCase()}](${url})`);
em.addField('Pokedox Number', data.id);
em.addField('Weight (kg)', weight);
em.setThumbnail(data.sprites.front_default);
message.channel.send(em)
})
}
}
module.exports = pokemonLookup
如果我打印(data)
到控制台,我会得到:
moves:
[ { move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] },
{ move: [Object], version_group_details: [Array] }
]
而且由于在他们的网站上move
,他们version_group_details
清楚地列出了,我想知道如何去检索这些信息。
解决方案
您可以通过执行以下操作轻松记录此信息:
console.log(data.moves[0].move)
console.log(data.moves[0].version_group_details)
它会按照以下方式返回一些东西:
>> {......} // move
>> [......] // version_group_details
推荐阅读
- python - 如何检查字符串中的字符是否为非字母?
- node.js - Express 提供来自另一台服务器的静态文件
- python-3.x - 带有 mongodb 结果后端的示例 celery v4.2
- java - 在我的意图android中选择联系人后如何删除联系人
- c# - Unity - 构造函数返回 Null 的问题
- lisp - Common Lisp中的两个求和函数有什么区别,谢谢
- sql - 搞砸关于count(*)和多个表的SQL查询问题
- c# - 创建 1000 个数组并使用冒泡排序和选择排序 (C#) 对它们进行排序
- algorithm - 在列表中查找元素集,元素只能使用一次 - 如何处理算法
- javascript - 克隆后如何确保j查询函数推导工作