Ich brauche @ JsonView für das Werfen von Ausnahmen während der Deserialisierung.@jsonview fehlgeschlagen auf unbekannte Eigenschaften
Mein POJO:
public class Contact
{
@JsonView(ContactViews.Person.class)
private String personName;
@JsonView(ContactViews.Company.class)
private String companyName;
}
Mein Service:
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;
}
Was muss ich erreichen, ist, dass, wenn ich eine Person zu schaffen versuche, ich brauche nur 'personname' zu übergeben. Wenn ich 'companyName' übergebe, muss ich eine Ausnahme auslösen. Wie kann ich dies mit @JsonView erreichen? Gibt es eine Alternative?
Sie können versuchen, zwei Klassen erstellen 'Unternehmen erstreckt Contact' und' PersonContact erstreckt Contact' – varren
@varren - Sie meinen, 2 neue Klassen für 'Unternehmen' und 'PersonContact'? –
yep, wenn Sie solche Option haben, wird es helfen, die Logik zu trennen – varren