Как избежать сериализации нулевых значений в HashMap?
Я хотел бы сериализовать HashMap в виде строки через процессор Jackson JSON.
Например:
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]}
Я не знаю, как отключить сериализацию нулевых значений для Map. Он отлично работает только для POJO, если настроить Jackson следующим образом:
mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
Ответы
Ответ 1
Для чего это стоит, Jackson 1.6 будет иметь это:
objectMapper.configure(SerializationConfig.WRITE_NULL_MAP_VALUES, false);
который делает то, что вы хотите. Существующий метод работает только для beans и не изменяется для обеспечения максимальной обратной совместимости.
EDIT: в соответствии с примечанием к комментариям, это для Jackson 1.x; У Jackson 2.x есть соответствие SerializationFeature
Ответ 2
Вот последняя аннотация для игнорирования полей NULL
@JsonSerialize (include = JsonSerialize.Inclusion.NON_NULL)
Ответ 3
Использование Jackson 2.1.2 Я обнаружил, что могу аннотировать класс с помощью
@JsonInclude(Include.NON_NULL)
, чтобы нули не были сериализованы вообще.
Ответ 4
Или вы можете аннотировать свой bean с помощью @JsonWriteNullProperties (false), который будет
Ответ 5
С последней версией Jackson в ObjectMapper вы можете сделать:
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);