我在Jackson上使用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(无值)放在每个属性中,但是对此我并不满意。

最佳答案

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

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

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

关于java - 如何在不可变库中使用Jackson PropertyNamingStrategy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39900835/

10-09 03:29