Я пытаюсь написать JUNIT для моего класса сериализации. Версия, которую я использую для Джексона, - jackson-databind-2.10.2 Мой конкретный класс расширяется и абстрактный класс. Когда я запускаю свой JUNIT, я получаю исключение. Отсутствует идентификатор типа при попытке разрешить подтип [простой тип, ReshipInfo]: отсутствует свойство идентификатора типа «тип» Ниже мой JSON для сериализации. Что мне не хватает. Пожалуйста, помогите.
{
"orderId" : "12345",
"orderDocumentType" : "SALES"
}
JUNIT Call
InputStream is = this.getClass().getClassLoader().getResourceAsStream("samples/response.json");
String control = IOUtils.toString(is, Charsets.UTF_8);
ReshipInfo reshipInfo = objectMapper.readValue(control, ReshipInfo.class);
Класс бетона
public class ReshipInfo extends AbstractRequest {
private Integer returnGracePeriod;
public ReshipInfo() {
}
public ReshipInfo(Builder builder) {
super(builder.orderDocumentType);
returnGracePeriod = builder.returnGracePeriod;
}
}
Аннотация Класс
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property = "type",
visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = ReshipInfo.class, name = "SALES")
})
public abstract class AbstractRequest {
@JsonProperty(value = "type")
private OrderDocumentType orderDocumentType;
}