Я могу попробовать простые случаи полиморфной десериализации в джексоне.Дессон полиморфная десериализация без поля
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY,
property = "type", visible = true)
@JsonSubTypes({
@Type(value = A.class, name = "a"),
@Type(value = B.class, name = "b")
})
Class Base {
private String type;
...
}
Class A extends Base {
...
}
Class B extends Base {
...
}
Но я столкнулся с тем, что у меня нет контроля над входящим Json. JSON выглядит
{ "type" : a, "params" : { .. fields for type A .. } }
{ "type" : b, "params" : { .. fields for type B .. } }
Поле params
может быть любого типа A или B. Оба A
и B
наследуют от Base
, но столбец, который принимает решение type
, находится за пределами поля params
.
Как настроить джексон смотреть на поле за пределами класса, а затем решить, фактический тип