2016-10-06 2 views
1

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

К сожалению Immutables библиотеки ставит @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/431https://github.com/immutables/immutables/issues/353

+0

Спасибо! forceJacksonPropertyNames = false действительно имеет результат, который генерировал класс Immutable *, который содержит аннотации JsonProperty без имени. Это заставляет Джексона уважать стратегию именования моего com.fasterxml.jackson.databind.ObjectWriter или стратегии именования, заданной @JsonNaming на уровне класса. Было бы здорово иметь forceJacksonPropertyNames, документацию на странице http://immutables.github.io/style.html. В настоящее время он не упоминается на этой странице, и весь org.immutables.value.Value.Style не документируется в javadoc. –

+0

Трудно сохранить страницу документации и синхронизацию Javadoc, поэтому они имеют разные роли: страница служит введением в стили, где Javadoc является подробным (насколько он пытается) ссылкой. Извините, если это менее прозрачно, что должно быть, мы постараемся улучшить это! Спасибо! –

Смежные вопросы