2012-08-28 1 views
16

Normalmente utilizzo objectMapper.setSerializationInclusion (JsonSerialize.Inclusion.NON_NULL) perché non desidero mai serializzare i valori nulli delle mie classi. Tranne ora ho un campo specifico che dovrebbe essere scritto, anche se è nullo. C'è un'annotazione rapida che posso mettere su questo campo che sovrascrive la proprietà Inclusion.NON_NULL per quell'unico campo? Qual è un buon modo per raggiungere questo obiettivo?Jackson usa JsonSerialize.Inclusion.NON_NULL tranne per una classe

risposta

25

Con Jackson 1.x è possibile utilizzare @JsonSerialize(include=Include.ALWAYS) e con Jackson 2.x è possibile utilizzare @JsonInclude(Include.ALWAYS). Queste annotazioni sovrascrivono la configurazione predefinita dal tuo ObjectMapper.

+0

Potete per favore citare Jackson nome vaso 2.xe pacchetto @JsonSerialize. –

+4

Il materiale di Jackson 1.x si trova nel pacchetto org.codehaus.jackson e 2.x è in com.fasterxml.jackson –

2

con Jackson 1.9 viene utilizzato @JsonSerialize(include= JsonSerialize.Inclusion.ALWAYS)

@JsonSerialize(include=Include.ALWAYS) non compilazione.

10

@ user1433372, JsonInclude è un'annotazione solo per Jackson 2.x.

a Jackson 1,9

@JsonSerialize(include=JsonSerialize.Inclusion.NON_EMPTY) 

è lo stesso a Jackson 2.x come

@JsonInclude(JsonInclude.Include.NON_EMPTY)