【问题标题】:How to extract the data from spotify web API如何从 Spotify Web API 中提取数据
【发布时间】:2019-09-12 14:52:29
【问题描述】:

我在 http 响应中找不到 JSON 对象

我正在尝试开发一个使用 spotify API 来获取艺术家信息的反应应用程序。我使用fetch 来生成 GET 请求

此请求应返回包含艺术家信息的 JSON。 但是,当我将响应打印到控制台时,我无法找到该数据的位置(在控制台中,我看到了标题和两个“blob”对象)。在开发人员工具网络选项卡中,我可以看到响应确实包含带有数据的 JSON,但正如我所说,我无法通过 response 变量访问它

这是我用来生成请求并记录响应的代码

var accessToken='here I insert my token from developer.spotify.com';
fetch('https://api.spotify.com/v1/artists/21E3waRsmPlU7jZsS13rcj', {
            method: 'GET',headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'Authorization': 'Bearer '+accessToken
            }
        })
            .then((response)=>{
                console.log(response);
            });

正如我所说,我得到了没有任何错误的响应,但我需要帮助找出我的数据在哪里

这是apihttps://developer.spotify.com/console/get-artist/的页面

这是我想从响应中提取的数据

{
  "external_urls": {
    "spotify": "https://open.spotify.com/artist/0TnOYISbd1XYRBk9myaseg"
  },
  "followers": {...},
  "genres": ["pop","latin",...],
  "href": "https://api.spotify.com/v1/artists/0TnOYISbd1XYRBk9myaseg",
  "id": "0TnOYISbd1XYRBk9myaseg",
  "images": [
    {
      "height": 640,
      "url": "https://i.scdn.co/image/89863fff0d540475d6fd25e7435138a4e5bd7216",
      "width": 640
    },
    {
      "height": 320,
      "url": "https://i.scdn.co/image/38e8be4aed5050c7b0bcf197a86b0e7b5cbb5ddc",
      "width": 320
    },
    {
      "height": 160,
      "url": "https://i.scdn.co/image/8573757d9c37eb5178ba8d34a6d6239b055fdf99",
      "width": 160
    }
  ],
  "name": "Pitbull",
  "popularity": 85,
  "type": "artist",
  "uri": "spotify:artist:0TnOYISbd1XYRBk9myaseg"
}

【问题讨论】:

    标签: json rest spotify


    【解决方案1】:

    已解决:fetch 返回的响应对象不仅包含我要查找的数据(在响应正文中),还包含其他信息(http 状态代码、响应标头等)。 为了获得我需要的数据,有必要将响应的主体解析为 JSON。 幸运的是,响应对象有一个方便的 .json() 方法可以做到这一点,返回一个我可以使用的 js 对象。

    所以我把代码改成了这样:

    fetch('https://api.spotify.com/v1/artists/21E3waRsmPlU7jZsS13rcj', {
                method: 'GET', headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json',
                    'Authorization': 'Bearer ' + accessToken
                }
            })
                .then((response) => {
                    console.log(response.json().then(
                        (data) => { console.log(data) }
                    ));
                });
    

    现在我得到了想要的数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-10
      • 2014-08-22
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 2013-01-08
      • 2020-05-11
      相关资源
      最近更新 更多