Как избавиться от проблем десериализации?

Имеем 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 и определить объект какого именно класса создавать.

→ Ссылка