0

我想在Android上使用Youtube API與Retrfoit2,但Jackson/JSON轉換器都無法解析對象。Youtube API與Retrofit2無法解析響應(錯誤:PlaylistItemListResponse類型PageInfo得到LinkedHashMap)

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

的Java files爲PlaylistItemResponse

This是響應

有人能指導我如何解決這個問題?

+0

你試過用'.addConverterFactory(GsonConverterFactory.create())'傑克遜一個呢?因爲谷歌有時創建他們的類與Gson專門工作 – MatPag

+0

是的,我試過,但也完全相同的錯誤 – bpsingh

+0

canu plz把你的模型類 PlaylistItemListResponse?完整的java文件 –

回答

0

我無法更深入地理解您的問題,但嘗試像下面那樣更改。

詞根記憶也隨着GSON

addConverterFactory(GsonConverterFactory.create(gson))

下面2.change模型類PlaylistItemListResponse

Link of model class

,因爲它的所有關於你的模型類的問題。

編碼快樂

+0

它的工作,但我們有任何線索爲什麼谷歌的模型不工作? – bpsingh

+0

我認爲它用於不同的事情 –

相關問題