Comment éviter les valeurs nulles sérialisation dans HashMap?
-
01-10-2019 - |
Question
Je voudrais sérialiser un HashMap comme une chaîne par le processeur Jackson JSON. Par exemple:
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]}
Je ne sais pas comment désactiver les valeurs null sérialisation pour carte. Il fonctionne très bien que pour POJO si configure Jackson comme ceci:
mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
La solution
Pour ce que ça vaut, Jackson 1.6 aura ceci:
objectMapper.configure(SerializationConfig.WRITE_NULL_MAP_VALUES, false);
qui ne fait ce que vous voulez. méthode existante ne fonctionne que pour les haricots, et ne pas être modifié pour assurer une compatibilité maximale descendante.
EDIT: conformément à la note sur les commentaires, c'est 1.x Jackson; Jackson 2.xa correspondant SerializationFeature
Autres conseils
Voici la dernière annotation pour ignorer les champs NULL
@JsonSerialize (comprennent = JsonSerialize.Inclusion.NON_NULL)
En utilisant Jackson 2.1.2 J'ai trouvé que je peux annoter la classe
@JsonInclude(Include.NON_NULL)
de sorte que ne sont pas sérialisés nulls du tout.
Ou vous pouvez annoter votre haricot avec @JsonWriteNullProperties (false) qui sera
Avec dernière version Jackson, sur le ObjectMapper, vous pouvez le faire:
mapper.setSerializationInclusion (JsonInclude.Include.NON_NULL);