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
16
A
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
.
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)
Potete per favore citare Jackson nome vaso 2.xe pacchetto @JsonSerialize. –
Il materiale di Jackson 1.x si trova nel pacchetto org.codehaus.jackson e 2.x è in com.fasterxml.jackson –