我正在尝试在Android上使用带有Retrfoit2的Youtube API,但两个Jackson / JSON转换器都无法解析对象。
YoutubeService
public interface YoutubeService {
@GET("playlistItems?part=snippet%2CcontentDetails")
Observable<PlaylistItemListResponse> getVideos(@Query("maxResults") Integer maxResults,
@Query("pageToken")String pageToken,
@Query("playlistId")String playlistId,
@Query("key")String key);
}
以下是我使用它的方式:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(YouTube.DEFAULT_BASE_URL)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(JacksonConverterFactory.create())
.build();
youtubeService = retrofit.create(YoutubeService.class);
以下是我得到的错误:
reactivex.exceptions.OnErrorNotImplementedException: field com.google.api.services.youtube.model.PlaylistItemListResponse.pageInfo has type com.google.api.services.youtube.model.PageInfo, got java.util.LinkedHashMap (through reference chain: com.google.api.services.youtube.model.PlaylistItemListResponse["pageInfo"])
This是PlaylistItemResponse的模型
PlaylistItemResponse的Java files
This是回复
有人可以指导我如何解决这个问题吗?
答案 0 :(得分:0)
我无法深入了解您的问题,但请尝试更改,如下所示。
1.用Gson制作
addConverterFactory(GsonConverterFactory.create(gson))
2.用下面的方式更改模型类PlaylistItemListResponse
。
因为它完全是关于你的模型类问题。
快乐编码