我正在使用Immutables库(https://immutables.github.io)。我需要我的类序列化为JSON(我使用Jackson)。我想跳过输出JSON中的可选字段。在Immutables之前,我在班级提供了@JsonInclude(JsonInclude.Include.NON_EMPTY)
。
看来,Immutables并不尊重这种注释。
如果我使用@JsonInclude(JsonInclude.Include.NON_EMPTY)
注释每个可选字段,则可以正常工作。
是否有可能指示Immutables跳过使用类级别(非字段级别)注释序列化空Optionals?我看到org.immutables.value.Value.Style#additionalJsonAnnotations
但是没有自定义传递注释使用它。
我的类路径中有jackson-datatype-jdk8,我的com.fasterxml.jackson.databind.ObjectMapper
有
mapper.registerModule(新 。Jdk8Module()configureAbsentsAsNulls(真));
答案 0 :(得分:2)
自版本v2.3.6(可能更早)以来,在Immutables中解决了问题。
Immutables尊重Jackson的@JsonInclude
,@JsonPropertyOrder
和其他类级别(或字段级别)注释。这些注释被复制到生成的Immutable类,它们按预期工作。