如何使Immutables库跳过序列化可选字段

时间:2016-10-10 14:58:48

标签: java json jackson immutables-library

我正在使用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(真));

1 个答案:

答案 0 :(得分:2)

自版本v2.3.6(可能更早)以来,在Immutables中解决了问题。 Immutables尊重Jackson的@JsonInclude@JsonPropertyOrder和其他类级别(或字段级别)注释。这些注释被复制到生成的Immutable类,它们按预期工作。