私は次の構造を持っています:
public class MainDTO {
private AbstractInferDTO;
getter and setter;
}
@JsonInfoType(use=Id.Name, include=As.Property, property="type")
@JsonSubTypes({
Type(value=Infer1DTO.class, name="infer1"),
Type(value=Infer2DTO.class, name="infer2")
})
abstract public class AbstractInferDTO {}
@JsonTypeName("infer1")
public class Infer1DTO extends AbstractInferDTO {
private String infer1Name;
getters and setters
}
@JsonTypeName("infer2")
public class Infer2DTO extends AbstractInferDTO {
private String infer2Name;
getters and setters
}
この構造を逆シリアル化しようとすると、深刻な問題が発生します。私は POST メソッドを使用していますが、Json アノテーションが POST メソッドに対して機能するのか、GET に対してのみ機能するのかはわかりません。この抽象クラスを通常のパブリック クラスに変更しましたが、認識されないフィールド名 AbstractInferDTO["infer1Name"] のエラーがまだあり、市場で無視できません。注釈 @JsonIgnoreProperties(ignoreUknown=true) または他の方法 - objectMapper.configure(DeserializeFeature.FAIL_ON_UKNOWN_PROPERTIES, false) を使用しましたが、何も機能しません。私を手伝ってくれますか?私はアイデアがありません。