java - 如何在retrofit 2.0中自定义gson转换器?

标签 java android retrofit2 okhttp

我将在 gson 转换器中初始化对象。

在retrofit 1.9中,我这样重写GsonConverter:

public class MyGsonConverter extends GsonConverter {
        @Override
        public Object fromBody(TypedInput body, Type type) throws ConversionException {
                    Object obj = super.fromBody(body, type);
                    if (obj instanceof User) {
                        ((User)obj).init();
                    }
                    return obj;
        }
}

RestAdapter setConverter(new MyGsonConverter(gson))

现在在Retrofit 2.0中,不再有GsonConverter,而是改为Converter.Factory。 它无法在方法中返回对象。

如何在 Retrofit 2.0 的转换器中初始化我的对象?

最佳答案

子类化ConverterFactory而不是Converter,并根据retrofit-converter中的现有类为其提供自定义的GsonResponseBodyConverter。

可能会有相关文档:

https://github.com/square/retrofit/issues/1305

同时,您可以像使用转换器一样修改这些类:

https://github.com/square/retrofit/tree/master/retrofit-converters/gson/src/main/java/retrofit2/converter/gson

如果您可以使用 Converter 来完成此操作,那么使用 Factory 就不那么难了。

关于java - 如何在retrofit 2.0中自定义gson转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34988763/

相关文章:

java - 使用 POJO 类关闭 response.body()

Java:使用第一个数组的前 3 个整数,然后使用第二个数组的 3 个整数,将 2 个数组组合成第三个数组

AndroidThreeTen 在没有 robolectric 的情况下无法在单元测试中工作?

android - 如何打开特定账户的账户设置?

android - Retrofit2 - 如何只缓存特定的 API 调用

java - 改造自定义回调通用类型

java - 将多行写入 java 中的新文件?

java - 改变 Activity 时如何平稳过渡

java - 它只给出一个字符串作为输出

android - 如何使用 HttpPost 发送日语字符