【问题标题】:Spotify API for Android - Retrieving JSON item from paging objectSpotify API for Android - 从分页对象中检索 JSON 项目
【发布时间】:2018-08-15 13:12:32
【问题描述】:

我在一个应用项目中为 spotify api 使用了 andorid-java 包装器。

https://github.com/kaaes/spotify-web-api-android

我很难从我的 Spotify API 请求中提取响应。提取单个响应很容易,但是一旦响应是分页对象,我就很挣扎。如何在 logcat 中打印“getArtistAlbums”中的专辑标题,以检查响应是否正确?

这是解释我的问题的代码:

@TargetApi(Build.VERSION_CODES.O)
private void setupSpotifyAPI() {
    Intent intent = getIntent();
    token = intent.getStringExtra(EXTRA_TOKEN);
    logMessage("Api Client created");
    spotifyApi = new SpotifyApi();
    spotifyApi.setAccessToken(token);

    final SpotifyService spotify = spotifyApi.getService();

    spotify.getArtistAlbums("0TnOYISbd1XYRBk9myaseg", new SpotifyCallback<Pager<Album>>() {
        @Override
        public void failure(SpotifyError spotifyError) {

        }

        @Override
        public void success(Pager<Album> albumPager, Response response) {

            Log.v("hello", albumPager.items.toString());

        }
    });

}

}

对于这个确切的工作,logcat 会打印:

D/MAIN: Api Client created
08-15 12:48:57.218 20889-21973/applicationname.companydomain.myapplication D/Retrofit: ---> HTTP GET https://api.spotify.com/v1/artists/0TnOYISbd1XYRBk9myaseg/albums
08-15 12:48:57.244 20889-20931/applicationname.companydomain.myapplication D/EGL_emulation: eglMakeCurrent: 0xa3d040c0: ver 3 0 (tinfo 0xa3d032d0)
08-15 12:48:57.764 20889-20931/applicationname.companydomain.myapplication D/EGL_emulation: eglMakeCurrent: 0xa3d040c0: ver 3 0 (tinfo 0xa3d032d0)
08-15 12:48:58.173 20889-21973/applicationname.companydomain.myapplication D/Retrofit: <--- HTTP 200 https://api.spotify.com/v1/artists/0TnOYISbd1XYRBk9myaseg/albums (953ms)
08-15 12:48:58.225 20889-20889/applicationname.companydomain.myapplication V/hello: [kaaes.spotify.webapi.android.models.Album@833d3be, kaaes.spotify.webapi.android.models.Album@b893c1f, kaaes.spotify.webapi.android.models.Album@8ba3b6c

在哪里 kaaes.spotify.webapi.android.models.Album@833d3be 只是一个对象,而不是元数据。

使用时

response.getBody().toString()

logcat 打印这个:

V/hello: retrofit.client.UrlConnectionClient$TypedInputStream@77dfecd

我怎样才能继续获取我真正需要的数据,而不仅仅是对象?

请查看我在 github 代表上打开的问题:

https://github.com/kaaes/spotify-web-api-android/issues/169

【问题讨论】:

  • 使用gson将你的albumPager.items转换成json然后你就可以在logcat上打印了
  • 谢谢!这也有帮助 :) 我绝对可以在我的项目中将它用于 JSON 抓取和更大的 JSON 操作。

标签: java android api retrofit2 spotify


【解决方案1】:

您可以简单地遍历寻呼机项目。

for (Album album : albumPager.items) {
   Log.d("album name", album.name);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2021-11-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多