Я использую библиотеку 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 (без стоимости) в каждой собственности, но я не доволен это
Спасибо! forceJacksonPropertyNames = false действительно имеет результат, который генерировал класс Immutable *, который содержит аннотации JsonProperty без имени. Это заставляет Джексона уважать стратегию именования моего com.fasterxml.jackson.databind.ObjectWriter или стратегии именования, заданной @JsonNaming на уровне класса. Было бы здорово иметь forceJacksonPropertyNames, документацию на странице http://immutables.github.io/style.html. В настоящее время он не упоминается на этой странице, и весь org.immutables.value.Value.Style не документируется в javadoc. –
Трудно сохранить страницу документации и синхронизацию Javadoc, поэтому они имеют разные роли: страница служит введением в стили, где Javadoc является подробным (насколько он пытается) ссылкой. Извините, если это менее прозрачно, что должно быть, мы постараемся улучшить это! Спасибо! –