Java Jackson Json序列化:删除空字符串

Java Jackson Json序列化:删除空字符串,java,json,jackson,fasterxml,Java,Json,Jackson,Fasterxml,我试图使用Jackson从生成的Json中排除所有空白字符串 我知道我可以使用下面的注释来过滤这个,但这似乎不能处理空白字符串。[只有空格的Stings] @JsonInclude(JsonInclude.Include.NON_EMPTY) 有什么方法可以做到这一点吗?您可以使用自定义值过滤器,请尝试一下,并告诉我这是否适合您- @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = CustomFilter.class

我试图使用Jackson从生成的Json中排除所有空白字符串

我知道我可以使用下面的注释来过滤这个,但这似乎不能处理空白字符串。[只有空格的Stings]

@JsonInclude(JsonInclude.Include.NON_EMPTY) 

有什么方法可以做到这一点吗?

您可以使用
自定义值过滤器
,请尝试一下,并告诉我这是否适合您-

@JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = CustomFilter.class)
这是自定义过滤器-

class CustomFilter {
    public CustomFilter() {
    }
    @Override
    public boolean equals(Object obj) {
        if(obj == null)
            return true;
        if(obj instanceof String){
            return ((String)obj).trim().isEmpty();
        }
        return false;
    }
}

根据定制过滤器的javadoc-

public static final JsonInclude.Include CUSTOM
值,该值指示单独的
过滤器
对象(由指定
值本身的JsonInclude.valueFilter(),和/或
JsonInclude.contentFilter()用于结构化类型的内容)将
用于确定纳入标准。筛选器对象的等于()
使用要序列化的值调用方法;如果返回true,则值为
排除(即过滤掉);如果包含false值