Jackson(注解):根据属性值自定义是否进行序列化

文章讲述了如何使用@JsonInclude注解配合自定义的CustomFilter类来控制JSON序列化的过程。当对象的属性满足特定条件(如对象为null或非字符串类型)时,将不被包含在序列化的结果中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 加在类或者属性上
@JsonInclude(value = JsonInclude.Include.CUSTOM, 
                valueFilter = CustomFilter.class)

自定义条件CustomFilter

public class CustomFilter {

        @Override
        public boolean equals(Object obj) {

            // null,或者不是字符串就返回true,意味着不被序列化
            if(null==obj || !(obj instanceof String)) {
                return true;
            }
        }
    }