Gson 反序列化结果对于一种类型为 null



我得到一个由两种类型的对象组成的响应:PaginationArtistSearch列表。我用于反序列化的模型是:

public class ArtistSearchResults {
List<ArtistSearch> artistSearchList;
Pagination pagination;
// getters and setters...
}

我在这里反序列化:

            Gson gson = new Gson();
            ArtistSearchResults results = gson.fromJson(response.toString(), ArtistSearchResults.class);
            List<ArtistSearch> artistSearchList = results.getArtistSearchList();
            Pagination pagination = results.getPagination();
            Log.i(TAG, "onSuccess Pagination size == " + pagination.getItems() );
            Log.i(TAG, "onSuccess RESULTS size == " + artistSearchList.get(0).getTitle() );

尽管我正确获得了Pagination对象的响应,但我总是为艺术家搜索列表获取空。

我没有收到任何错误消息,所以我不确定错误在哪里。我得到的结果看起来像这样:

07-10 06:11:06.726 6954-6954/jb.ti.discogsball I/SEARCHHANDLER: onSuccess Search-Artist response = {"pagination":{"per_page":5,"pages":3,"page":1,"urls":{"last":"https://api.discogs.com/database/search?q=savage+republic&per_page=5&type=artist&page=3","next":"https://api.discogs.com/database/search?q=savage+republic&per_page=5&type=artist&page=2"},"items":14},"results": [{"thumb":"https://api-img.discogs.com/RAHE1vqHWb1xwPUv5y2Q1v5g4Yo=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-121133-1262786660.jpeg.jpg","title":"Savage Republic","uri":"/artist/121133-Savage-Republic","resource_url":"https://api.discogs.com/artists/121133","type":"artist","id":121133},{"thumb":"https://api-img.discogs.com/GYkPyAYZEcFM0bzyjnBple7P3Yw=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-307086-1160815350.jpeg.jpg","title":"Bruce Licher","uri":"/artist/307086-Bruce-Licher","resource_url":"https://api.discogs.com/artists/307086","type":"artist","id":307086},{"thumb":"https://api-img.discogs.com/XHvbh885CZ2uTcq7WT3ph0n0gMs=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-71224-1334785233.jpeg.jpg","title":"Medicine (2)","uri":"/artist/71224-Medicine-2","resource_url":"https://api.discogs.com/artists/71224","type":"artist","id":71224},{"thumb":"","title":"Val Haller","uri":"/artist/492425-Val-Haller","resource_url":"https://api.discogs.com/artists/492425","type":"artist","id":492425},{"thumb":"","title":"Ramona Clarke","uri":"/artist/1957827-Ramona-Clarke","resource_url":"https://api.discogs.com/artists/1957827","type":"artist","id":1957827}]}
07-10 06:11:06.732 6954-6954/jb.ti.discogsball I/SEARCHHANDLER: onSuccess Pagination size == 14

如您所见,我得到了Pagination对象的值,但我得到了艺术家搜索列表的NPE。

我用于艺术家搜索的模型是:

public class ArtistSearch {
int id;
String title;
String type;
String resource_url;
String uri;
String thumb;
// getters and setters ...

这是解析为 null 的响应中的文本:

"results":

[{"thumb":"https://api-img.discogs.com/RAHE1vqHWb1xwPUv5y2Q1v5g4Yo=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-121133-1262786660.jpeg.jpg","title":"Savage Republic","uri":"/artist/121133-Savage-Republic","resource_url":"https://api.discogs.com/artists/121133","type":"artist","id":121133},{"thumb":"https://api-img.discogs.com/GYkPyAYZEcFM0bzyjnBple7P3Yw=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-307086-1160815350.jpeg.jpg","title":"Bruce Licher","uri":"/artist/307086-Bruce-Licher","resource_url":"https://api.discogs.com/artists/307086","type":"artist","id":307086},{"thumb":"https://api-img.discogs.com/XHvbh885CZ2uTcq7WT3ph0n0gMs=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-71224-1334785233.jpeg.jpg","title":"医学 (2)","uri":"/artist/71224-Medicine-2","resource_url":"https://api.discogs.com/artists/71224","type":"artist","id":71224},{"thumb":","title":"Val Haller","uri":"/artist/492425-Val-Haller","resource_url":"https://api.discogs.com/artists/492425","type":"artist","id":492425},{"thumb":","title":"Ramona Clarke","uri":"/artist/1957827-Ramona-Clarke","resource_url":"https://api.discogs.com/artists/1957827","type":"artist","id":1957827}]

您能否替换ArtistSearchResults.java中的以下变量声明:

private List<ArtistSearch> artistSearchList;

通过这个:

@SerializedName("results")
private List<ArtistSearch> artistSearchList;

并看到结果?

相关内容

最新更新