Come evitare i valori nulli serializzazione in HashMap?
-
01-10-2019 - |
Domanda
Vorrei serializzare un HashMap come una stringa attraverso il processore Jackson JSON. Ad esempio:
String strMap = getMapper().writeValueAsString(myHashMap);
result output -> {"r_id":6,"a_am":null,"smb":"Submit","a_li":null,"l_id":878,"pos":[1345,1346,1347]}
Non so come nullo disabilita valori serializzazione per Map. Funziona bene solo per POJO se configurare l'Jackson in questo modo:
mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
Soluzione
Per quel che vale, Jackson 1.6 avrà questo:
objectMapper.configure(SerializationConfig.WRITE_NULL_MAP_VALUES, false);
che non fai quello che vuoi. metodo esistente funziona solo per i semi, e non viene modificata per garantire la massima compatibilità all'indietro.
EDIT: come da nota sul commenti, questo è per Jackson 1.x; Jackson 2.x ha corrispondenza SerializationFeature
Altri suggerimenti
Ecco l'ultima annotazione per aver ignorato i campi NULL
@JsonSerialize (include = JsonSerialize.Inclusion.NON_NULL)
Utilizzando Jackson 2.1.2 ho trovato che posso annotare la classe con
@JsonInclude(Include.NON_NULL)
in modo che i valori nulli non vengono serializzati a tutti.
In alternativa, è possibile annotare il bean con @JsonWriteNullProperties (false) che sarà
Con la versione più recente Jackson, sulla ObjectMapper, si può fare:
mapper.setSerializationInclusion (JsonInclude.Include.NON_NULL);