2013-11-14 13 views
7

Qual è il modo migliore/preferito per convalidare JSON utilizzando le annotazioni all'interno di un POJO? Mi piacerebbe essere in grado di distinguere tra campi opzionali e obbligatori di un POJO. Vorrei poter fornire valori predefiniti per i campi obbligatori di un POJO.Convalida JSON all'interno di un POJO

Esempio:

@JsonTypeInfo(use=Id.NAME, include = As.WRAPPER_OBJECT) 
@JsonTypeName("Foo") 
public class MyClass{ 
    @JsonProperty 
    private String someOptionalField; 
    @JsonProperty 
    private String someRequiredField; 
    @JsonProperty 
    private String someRequiredFieldThatIsNotNull; 
    @JsonProperty 
    private int someRequiredFieldThatIsGreaterThanZero; 
    // etc... 
} 
+4

http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html –

+0

grazie! Questo dovrebbe fare il trucco – user2992188

+0

Non ha molto senso. Perché vuoi convalidare queste proprietà nel POJO stesso? La convalida deve essere gestita da API di convalida appropriate che sono liberamente accoppiate con le altre parti dell'applicazione e impediscono l'ulteriore elaborazione, se i vincoli non hanno esito positivo. – Lion

risposta

1

Un possibile approccio è quello di deserializzare JSON in un oggetto e convalidare un oggetto con API convalida @MattBall collegati. Il vantaggio è che questa logica viene disaccoppiata dalla logica di archiviazione e si è liberi di modificare la logica di archiviazione senza la necessità di reimplementare la convalida.

Se si desidera convalidare JSON, è possibile dare un'occhiata a JSON schema.

Problemi correlati