0

我正在使用 Immutables 库(https://immutables.github.io)。我需要我的类序列化为 JSON(我使用 Jackson)。我想跳过输出 JSON 中的可选字段。在 Immutables 之前,我@JsonInclude(JsonInclude.Include.NON_EMPTY)在课堂上提供。

看来,Immutables 不尊重该注释。如果我用它注释每个可选字段,@JsonInclude(JsonInclude.Include.NON_EMPTY)它就可以正常工作。

是否可以使用类级别(不是字段级别)注释指示不可变对象跳过序列化空选项?我看到org.immutables.value.Value.Style#additionalJsonAnnotations了,但没有使用它自定义传递的注释。

我的类路径中有 jackson-datatype-jdk8,我com.fasterxml.jackson.databind.ObjectMapper

mapper.registerModule(new Jdk8Module().configureAbsentsAsNulls(true));

4

1 回答 1

3

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

于 2016-11-19T13:39:53.627 回答