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);
È stato utile?

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);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top