如何将Jackson PropertyNamingStrategy与Immutables库一起使用

时间:2016-10-06 16:08:11

标签: java jackson immutability immutables-library

我正在与Jackson一起使用https://immutables.github.io/库。 我希望我的课程能够成为杰克逊 - 可序列化的。我想使用自定义PropertyNamingStrategy(使用com.fasterxml.jackson.databind.ObjectMapper

mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);配置

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

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

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

1 个答案:

答案 0 :(得分:1)

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

样式简介可在此处找到:http://immutables.github.io/style.html

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