デシリアライズ中に例外をスローするために@JsonViewを使用する必要があります。@jsonviewが不明なプロパティで失敗する
マイPOJO:
public class Contact
{
@JsonView(ContactViews.Person.class)
private String personName;
@JsonView(ContactViews.Company.class)
private String companyName;
}
私のサービスは:私は達成するために必要なもの
public static Contact createPerson(String json) {
ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES , true);
Contact person = mapper.readerWithView(ContactViews.Person.class).forType(Contact.class).readValue(json);
return person;
}
public static Contact createCompany(String json) {
ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES , true);
Contact company = mapper.readerWithView(ContactViews.Company.class).forType(Contact.class).readValue(json);
return company;
}
は、私は人を作成しようとしていますならば、私は唯一の 'PERSONNAME' を渡す必要がある、ということです。私は 'companyName'を渡す場合、私は例外をスローする必要があります。 @JsonViewでこれをどのように達成できますか?何か別の選択肢はありますか?
あなたは2クラスを作成しようとすることができます 'CompanyContactがContact'と' PersonContactが伸びるContact' – varren
@varrenを拡張 - あなたは 'CompanyContact' と 'PersonContact' の2つの新しいクラスを意味ですか? –
あなたがそのようなオプションを持っていれば、ロジックを分離するのに役立ちます – varren