我在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/