Как заставить библиотеку Immutables пропустить сериализацию Необязательные поля
Я работаю с библиотекой Immutables ( https://immutables.github.io/). Мне нужны мои классы для сериализации в JSON (я использую Джексона). Я хочу пропустить дополнительные поля в моем выводе JSON. Перед неизменными я предоставил @JsonInclude(JsonInclude.Include.NON_EMPTY)
на уровне класса.
Кажется, Immutables не соблюдает эту аннотацию. Если я аннотирую каждое необязательное поле с @JsonInclude(JsonInclude.Include.NON_EMPTY)
это работает отлично.
Можно ли поручить Immutables пропускать сериализацию пустых Optionals с использованием аннотации на уровне класса (не на уровне поля)? я вижу org.immutables.value.Value.Style#additionalJsonAnnotations
но нет никакой настройки переданной аннотации, использующей это.
У меня есть jackson-datatype-jdk8 в моем классе, и мой com.fasterxml.jackson.databind.ObjectMapper
имеет
mapper.registerModule(новый Jdk8Module().configureAbsentsAsNulls(true));
1 ответ
Проблема устранена в Immutables начиная с версии v2.3.6 (возможно, ранее). Неизменных уважает @JsonInclude
, @JsonPropertyOrder
и другие аннотации класса (или уровня поля) от Джексона. Эти аннотации копируются в сгенерированный класс Immutable и работают как положено.