改造:如何为特定的 API 调用设置自定义解串器?

Retrofit: How do I set a custom deserializer for a certain API calls only?

嗨,所以我几乎在任何地方都看到过这个例子,他们写了一个自定义的 GSON 反序列化器,然后将其添加到 RestAdapter

基本上是这样

 public RestClient()
{
    Gson gson = new GsonBuilder()
            .registerTypeAdapterFactory(new ItemTypeAdapterFactory()) // This is the important line ;)
            .setDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'")
            .create();

    RestAdapter restAdapter = new RestAdapter.Builder()
            .setLogLevel(RestAdapter.LogLevel.FULL)
            .setEndpoint(BASE_URL)
            .setConverter(new GsonConverter(gson))
            .setRequestInterceptor(new SessionRequestInterceptor())
            .build();

    apiService = restAdapter.create(ApiService.class);
}

但是,如果我的 API 服务不能对所有 API 调用使用相同的反序列化器怎么办?如果我只想要一个 API 调用来使用特定的反序列化器怎么办?

据我从一些测试中了解到,您被迫创建两个不同的 RestAdapter 实例,一个带有 Gson 转换器,一个没有。