Как использовать 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