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);
Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top