java - 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": {}
}
我也尝试添加
- NON_DEFAULT 属性,或
- NON_ABSETNT 属性,但它是相同的。
问题出在这里我有大量的字段类型:Boolean
. 当所有嵌套值都为空时,添加此行为以ObjectMapper
不包含此对象的最简单方法应该是什么?编写自定义 Serializable 需要向所有这些字段添加注释。有什么方法可以为此覆盖默认序列化程序吗?holdTypeIndicator
Boolean
json
ObjectMapper
解决方案
推荐阅读
- mediawiki - Mediawiki 清除作为用户权限
- function - as3 flash gotoAndPlay
- angular - 在 Angular 9 应用程序中从数据库加载组件脚本
- python-3.x - 将字符串拆分为数据框中的单独列
- swift - Swift:ReadMoreTextView 库点击检测
- inheritance - Entity Framework Core 自引用和继承
- django - 从 Django 休息框架中的选择字段中获取数据
- r - 在不保留标签顺序的情况下堆叠条形图
- apache-spark - 根据列表的匹配值过滤DataFrame中的行
- angular - Override service provided in NgModule in a web component