Как настроить преобразователь gson в модификации 2.0?

Я инициализирую объект в конвертере gson.

В модификации 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 (новый MyGsonConverter (gson))

Теперь в Retrofit 2.0 у него нет GsonConverter, он заменен на Converter.Factory. Он не может вернуть объект в методе.

Как я могу инициализировать свой объект в конвертере в Retrofit 2.0?


person H3c    schedule 25.01.2016    source источник


Ответы (1)


Подкласс ConverterFactory вместо Converter и укажите для него собственный GsonResponseBodyConverter на основе существующих классов в retrofit-converter.

Вероятно, на него будет документация:

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

Между тем, вы можете изменить эти классы так же, как и с конвертером:

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

Если вы можете сделать это с преобразователем, это не должно быть так сложно с фабрикой.

person Herrbert74    schedule 21.03.2016