Как избавиться от проблем десериализации?
Имеем 3 класса
Базовый
@JsonTypeName("A")
public class A {
...
}
и два дочерних класса с разными enum'ами
@JsonTypeName("B")
public class B extends A {
private Code code;
public enum Code{
...
}
...
}
@JsonTypeName("C")
public class C extends A {
private Code code;
public enum Code{
...
}
...
}
При отправки объектов этих классов на слушателе возникает ошибка
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "code"
Как это исправить
Ответы (1 шт):
Автор решения: Anton Shchyrov
→ Ссылка
Не хватает кода вызова десериализации. Но скорее всего вы вызываете как-то так
A a = deserialize(json, A.class);
Т.е. вы сами говорите десериализатору создать объект класса A. Но у этого класса нет поля code. Решение: проанализировать входящий JSON и определить объект какого именно класса создавать.