逆シリアル化中に例外をスローするには、@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;
}
私が達成する必要があるのは、Person を作成しようとしている場合、'personName' のみを渡す必要があるということです。「companyName」を渡すと、例外をスローする必要があります。@JsonViewでこれを達成するにはどうすればよいですか? 代替手段はありますか?