Как заставить библиотеку 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 и работают как положено.

Другие вопросы по тегам