Youtube API with Retrofit2 not able to parse response(Error: PlaylistItemListResponse has type PageInfo got LinkedHashMap)
Youtube API with Retrofit2 not able to parse response(Error: PlaylistItemListResponse has type PageInfo got LinkedHashMap)
我正在尝试在 Android 上将 Youtube API 与 Retrfoit2 一起使用,但是两个 Jackson/JSON 转换器都无法解析对象。
YouTube 服务
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
的模型
Java files 对于 PlaylistItemResponse
This 是回应
谁能指导我如何解决这个问题?
我无法更深入地理解你的问题,但请尝试如下更改。
1.Make 它与 Gson
addConverterFactory(GsonConverterFactory.create(gson))
2.change 您的模型 class PlaylistItemListResponse
如下所示。
因为这完全是关于您的模型 class 问题。
编码愉快
我正在尝试在 Android 上将 Youtube API 与 Retrfoit2 一起使用,但是两个 Jackson/JSON 转换器都无法解析对象。
YouTube 服务
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
的模型Java files 对于 PlaylistItemResponse
This 是回应
谁能指导我如何解决这个问题?
我无法更深入地理解你的问题,但请尝试如下更改。
1.Make 它与 Gson
addConverterFactory(GsonConverterFactory.create(gson))
2.change 您的模型 class PlaylistItemListResponse
如下所示。
因为这完全是关于您的模型 class 问题。
编码愉快