Как использовать Jackson PropertyNamingStrategy с библиотекой Immutables

Я использую библиотеку https://immutables.github.io/ с Джексоном. Я хочу, чтобы мой класс был сериализуемым по Джексону. Я хотел бы использовать обычай PropertyNamingStrategy (настроен для com.fasterxml.jackson.databind.ObjectMapper с помощью mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

К сожалению библиотека неизменных ставит @JsonProperty("propertyName") на каждом поле в сгенерированном коде. Это переопределяет PropertyNamingStrategy, определенный на уровне картографа (или на уровне класса, используя @com.fasterxml.jackson.databind.annotation.JsonNaming аннотация).

Можно ли заставить библиотеку Immutables перестать ставить имя свойства для каждого поля (используя org.immutables.value.Value.Style или аналогичные средства)?

Я пришел с обходным путем, поместив @JsonProperty (без значения) в каждое свойство, но меня это не устраивает.

1 ответ

Решение

Свойство стиля forceJacksonPropertyNames=false не принуждает имена свойств к определенным строкам. Он работает со стратегиями именования, настроенными на уровне класса и на уровне картографа.

Введение в стили доступно здесь: http://immutables.github.io/style.html

Вы можете прочитать некоторые справочные сведения об этом параметре в следующих выпусках: https://github.com/immutables/immutables/issues/431 https://github.com/immutables/immutables/issues/353

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