axios get请求后访问json数据
Posted
技术标签:
【中文标题】axios get请求后访问json数据【英文标题】:Accessing JSON data after Axios get request 【发布时间】:2020-06-20 16:39:54 【问题描述】:我一直在尝试制作一个与 Shoppy API (https://shoppy.dev/) 配合使用的 Discord Bot。我对 javascript 完全陌生 - 但对编码并不陌生!
我对 Axios 进行了一些研究,并设法使用它从 Shoppy 帐户中提取订单列表。问题是,有大量数据我只想向用户显示其中的一部分。我不得不在下面的代码中编辑一些信息,但这就是我所拥有的:
case 'orders':
async function makeRequest()
const config =
method: 'get',
url: 'https://shoppy.gg/api/v1/orders/',
headers:
'Authorization': 'REDACTED - MY API KEY',
'Content-Type': 'application/json',
'Connection': 'keep-alive'
axios(config)
.then(response =>
console.log(response.data);
);
makeRequest();
break;
这会在控制台中产生以下输出。我在这里仅列出了一些信息,只是为了显示格式,但您大致了解:
Bot Online
[
id: 'REDACTED',
pay_id: null,
product_id: 'REDACTED',
coupon_id: null,
price: 3,
currency: 'CAD',
exchange_rate: null,
email: 'REDACTED',
delivered: 1,
confirmations: 1,
required_confirmations: 1,
我的问题是 - 例如,我无法弄清楚如何仅从“电子邮件”中获取数据并将其显示给用户。我花了几个小时尝试不同的方式,但控制台总是只显示“未定义”。
我觉得这是一件超级简单的事情,我只是没有得到任何东西。有人有建议吗?为了给这段代码提供更多的上下文,用户正在编写“!订单”,机器人将用他们的订单列表进行响应——但我只希望机器人显示类似“订单 ID”、“产品名称”之类的内容, '电子邮件'。所以我不需要所有被拉取的数据。
谢谢!!
【问题讨论】:
您好,如果您的问题已通过以下任一答案得到解决,请考虑通过单击旁边的灰色勾号将其标记为已接受 :) 【参考方案1】:请求返回一个数组。因此,您需要对其进行迭代以获取所有元素。您可以在响应回调中使用 for 循环或 map 函数来执行此操作。
axios(config).then(response =>
console.log(response.data);
//Add the for loop or the map operator here
)
使用 for 循环:
for(let x of response.data)
//x gives you an individual item. Do whatever you want with it.
// x.email gives you the email
使用地图操作符:
var emails = response.data.map(x =>
return x.email;
);
//emails contains the array of all emails
您可以在 for 循环或 map 运算符中添加自己的验证以选择合适的电子邮件...
【讨论】:
这实际上非常有效,非常感谢!!!我会阅读一些地图以更好地理解,但我只是快速测试了电子邮件并且能够提取它们。以上是关于axios get请求后访问json数据的主要内容,如果未能解决你的问题,请参考以下文章
Axios.get 返回纯 html 而不是 JSON 返回数据
axios中http请求Content-Type以及post需要用qs.stringify而get请求时不用
Vue.js怎么获取页面json数据啊 求解答(get方式) 尝试后失败了 (vue.js和axios.min.js已引用)?