繁体   English   中英

如何从 API 调用后返回的“直通”object 访问数据?

[英]How to access data from "Passthrough" object returned after API call?

我正在向以下 url 发送带有节点提取的提取请求: http://fantasy.premierleague.com/api/bootstrap-static/以取回一些 JSON 数据。 在浏览器中访问 URL,或使用 postman 发送 get-request 都会返回预期的 JSON 数据。

但是,当我从节点发送请求时,我得到一个 object,我不知道如何从中提取数据(下图)。

我对节点不是很有经验,但我之前成功拨打过 API 电话。 通常使用 response.json() 或 JSON.parse(response) 或 response.body 或 response.toString() 或它们的某些组合对我有用。 我对缓冲区和流有一半的了解,但不确定,解决方案可能与这些有关,但我似乎无法弄清楚。

根据我的尝试,我会得到一些不同的错误和对象。 我试过使用 fetch 和来自节点的普通 http 请求。

这个电话: 在此处输入图像描述

返回这个: 在此处输入图像描述

如果我执行 JSON.parse(response) 我会收到以下错误: 在此处输入图像描述

Response.body 看起来像这样: 1/2 2/2

Fetch 返回一个响应 stream,如在类似问题的答案中提到的,您可以分块读取数据并将该块添加到数组中,然后对该数据执行任何需要执行的操作。 一种更简单的方法是使用 npm 请求 package。这是一个示例。

const request = require('request');
let options = {json: true};

const url = 'http://fantasy.premierleague.com/api/bootstrap-static/'
request(url, options, (error, res, body) => {
    if (error) {
        return  console.log(error)
    };

    if (!error && res.statusCode == 200) {
        console.log(body);
        // do something with JSON, using the 'body' variable
    };
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM