Если у меня есть такая структура класса:
public abstract class Parent {
private Long id;
...
}
public class SubClassA extends Parent {
private String stringA;
private Integer intA;
...
}
public class SubClassB extends Parent {
private String stringB;
private Integer intB;
...
}
Есть ли альтернативный способ десериализации разных, чем @JsonTypeInfo
? Используя эту аннотацию в моем родительском классе:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "objectType")
Я бы предпочел не принуждать клиентов моего API включать "objectType": "SubClassA"
для десериализации подкласса Parent
.
Вместо использования @JsonTypeInfo
делает ли Джексон способ аннотировать подкласс и отличать его от других подклассов с помощью уникального свойства? В приведенном выше примере это будет примерно так: "Если объект JSON имеет "stringA": ...
десериализует его как SubClassA
, если он имеет "stringB": ...
десериализует его как SubClassB
".