2

逆シリアル化中に例外をスローするには、@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でこれを達成するにはどうすればよいですか? 代替手段はありますか?

4

1 に答える 1