首页 > 解决方案 > Jackson 确实包含了不应包含嵌套空值的对象

问题描述

我不想在json其中包含嵌套对象值null,但我得到了不同的结果。我有课:

@Data
public class HoldsType {

    @JsonInclude(JsonInclude.Include.NON_NULL)
    protected HoldTypeIndicatorType holdTypeIndicator;
    @JsonInclude(JsonInclude.Include.NON_NULL)
    protected HoldReasonsType holdReasons;
}

它包含嵌套HoldTypeIndicatorType类:

@Data
public class HoldTypeIndicatorType {

    @JsonInclude(JsonInclude.Include.NON_NULL)
    protected Boolean dealerAssignment;
    @JsonInclude(JsonInclude.Include.NON_NULL)
    protected Boolean someSpecification;
}

我在那里添加了 @JsonInclude(JsonInclude.Include.NON_NULL) 注释以从结果 json 中排除这些字段,但我收到:

{
 "holdTypeIndicator": {}
}

我也尝试添加

问题出在这里我有大量的字段类型:Boolean. 当所有嵌套值都为空时,添加此行为以ObjectMapper不包含此对象的最简单方法应该是什么?编写自定义 Serializable 需要向所有这些字段添加注释。有什么方法可以为此覆盖默认序列化程序吗?holdTypeIndicatorBooleanjsonObjectMapper

标签: javajackson

解决方案


推荐阅读