如何使用 Spotify web api 和 Gson 获取专辑封面

How to get album art using Spotify web api with Gson

我正在使用 spotify web api 获取包含专辑信息的 json 对象。

这是模型url

https://api.spotify.com/v1/search?q=album:arrival%20artist:abba&type=album

假设我正在寻找 "Nirvana" 的专辑 "Nevermind" 并且我有这张 url

https://api.spotify.com/v1/search?q=album:nevermind%20artist:nirvana&type=album

所以我在这里为 Gson 做了一个 "model object"

public class SpotifyAlbumInfo {

    public CollectionInfo collectionInfo;

    public class CollectionInfo {

        String href;
        List<Album> albums;     
        Integer limit;
        String next;      
        Integer offset;
        String previous;  
        Integer total6;

        public class Album{
            String album_type;
            String[] available_markets;
            Urls external_urls;
            String href;
            String id;
            List<Image> images;
            String name;
            String type;
            String uri;

            public class Urls{
                String source;
            }

            public class Image {
                Integer height;
                String url;
                Integer width;
            }
        }
    }
}

我在这里尝试获取第一张图片 url

for(int i=0;i<response.collectionInfo.albums.images.size();i++){       
    if(response.collectionInfo.albums.image.get(i).contains("nevermind")){
        imageUrl = response.collectionInfo.albums.images.get(i).url;
        break;
    }
}

问题是这个说法没问题

response.collectionInfo.albums.size();

但是我不会用

response.collectionInfo.albums.images.size();

因为我收到错误 symbol does not exist

对于这些语句,我得到了同样的错误。

response.collectionInfo.albums.images.size(); 
response.collectionInfo.albums.album_type.size();
response.collectionInfo.albums.href.size();
// etc

如何 "a layer deeper" 进入我的 "model object" 并获得我想要的图像 url?

您需要从列表中获取特定专辑

collectionInfo.albums

List 接口没有 images 字段,某些错误代码可能试图告诉您这一点。

您可以像这样向下钻取

Album album0 = collectionInfo.albums.get(0);
album0.images.size()