Десериализация объекта класса с разными конструкторами с Gson - PullRequest
0 голосов
/ 27 сентября 2018

Здесь объясняется десериализация для классов с универсальными типами https://stackoverflow.com/a/8829656/4553806. Теперь предположим, что у меня есть какая-то ситуация, но у моего класса есть два конструктора с различным количеством параметров.

    class TestClass(val par1:String, val par2:String)
    class TestClass(val par1:String)

Итак, я знаю, чтомой объект типа TestClass, но я не знаю, с каким конструктором он инициализирован.

Как десериализовать?

Используя этот способ

val fooType = object : TypeToken<Myclass<String>>() {}.type;
gson.fromJson(json, fooType);

или это

val fooType = object : TypeToken<Myclass<String, String>>() {}.type);
gson.fromJson(json, fooType);

может вызвать исключение, если число полей объектов не совпадает.

Если кто-либо имеет опыт работы с этим случаем, пожалуйста, укажите это здесь.

1 Ответ

0 голосов
/ 27 сентября 2018

GSON очень прост в использовании, просто установите ваше serializedName и используйте GSON конвертер для его заполнения.Вот простой учебник для подражания.

https://www.tutorialspoint.com/gson/gson_quick_guide.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...