2

我正在使用https://immutables.github.io/库和杰克逊。我希望我的课程是杰克逊可序列化的。我想使用自定义PropertyNamingStrategy(配置为com.fasterxml.jackson.databind.ObjectMapper使用 mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

不幸的是,Immutables 库将@JsonProperty("propertyName")生成代码的每个字段都放在了其中。这会覆盖在映射器级别(或在类级别,使用@com.fasterxml.jackson.databind.annotation.JsonNaming注释)定义的 PropertyNamingStrategy。

是否可以让 Immutables 库停止为每个字段放置属性名称(使用org.immutables.value.Value.Style或类似方式)?

我提供了解决方法,将@JsonProperty(没有价值)放在每个属性上,但我对此并不满意。

4

1 回答 1

3

样式属性forceJacksonPropertyNames=false不强制属性名称为特定字符串。它适用于在类级别和映射器级别配置的命名策略。

样式介绍可在此处获得:http: //immutables.github.io/style.html

您可以在问题中阅读有关此设置的一些背景信息:https ://github.com/immutables/immutables/issues/431 https://github.com/immutables/immutables/issues/353

于 2016-10-07T12:26:32.313 回答