Разрешить значения карты NULL в пользовательском JsonSerializer - PullRequest
0 голосов
/ 11 сентября 2018

Весной у меня есть глобальный объектный маппер, свойство которого установлено так:

getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_EMPTY);

Это работает правильно и исключает все нулевые значения при сериализации.

Но у меня есть собственный сериализатор для класса, который имеет приватную Map<String, Object> data = new LinkedHashMap<>() в качестве переменной-члена. Эта карта имеет ключи с нулевыми значениями, которые я хотел бы включить в свой вывод. Уровень класса или уровень члена @JsonInclude не работает. Попытка переопределения isEmpty и возврата false всегда, но это не сработало.

Значения карты NULL автоматически включались до версии 2.5, но это начало происходить после обновления до 2.9+. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 11 сентября 2018

По сути, вы ищете индивидуальный сериализатор только для одного класса?Вы можете найти, как это достигается здесь

И затем вы можете зарегистрировать сериализатор для вашего класса

@JsonSerialize(using = CustomSerializer.class)
class YourClass{

Это зарегистрирует пользовательский сериализатор для вашего заинтересованного класса итаким образом, вы также можете добавить нулевые значения.

...