【问题标题】:YouTube Data API v3 search JSON response retrofit parsing errorYouTube Data API v3 搜索 JSON 响应改造解析错误
【发布时间】:2016-05-23 17:02:35
【问题描述】:

YouTube Data API v3 搜索 JSON 响应改造解析错误发生

@GET("/youtube/v3/search")
void getYouTubeVideos(@Query("key") String apiKey,
                      @Query("channelId") String channelId,
                      @Query("part") String videoPart,
                      @Query("order") String videoOrder,
                      @Query("maxResults") String maxResults,
                      Callback<ChannelListResponse> callback);

Callback&lt;ChannelListResponse&gt;

我用过

`import com.google.api.services.youtube.model.ChannelListResponse`

with dependency in gradle `compile 'com.google.apis:google-api-services-youtube:v3-rev162-1.21.0'`

但在失败方法中它返回错误retrofit.RetrofitError: invalid value for field

请指导我更好地提前谢谢

【问题讨论】:

  • 您使用的是哪个版本的改造?
  • @Blackbelt com.squareup.retrofit:retrofit:1.9.0
  • 拜托这里没有神和国王...请给我们更多日志...
  • 你的 pojo 映射和所有...
  • @sector11 D/dalvikvm: wrong object type: Lcom/google/gson/internal/LinkedTreeMap; Lcom/google/api/services/youtube/model/PageInfo; 在日志中......

标签: android json youtube retrofit youtube-data-api


【解决方案1】:

我通过创建与所需数据相关的自定义 pojo 类解决了这个问题,因为 com.google.api.services.youtube.model.ChannelListResponse 没有任何 @Expose 注释也没有 @SerializedName() 这就是解析不成功的原因。

【讨论】:

    【解决方案2】:

    我认为问题出在这一行:@Query("maxResults") String,maxResults。签入documentation,您将看到 maxResults 不期望字符串而是无符号整数。

    【讨论】:

    • 不是一个正确的答案,因为 maxResults 正在接受字符串并且响应是准确的,但在相关的 pojo 中不能自动解析
    猜你喜欢
    • 2015-08-05
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2014-03-01
    • 2013-11-28
    • 2020-02-03
    • 2016-06-21
    相关资源
    最近更新 更多