Java Jackson Json序列化:删除空字符串
我试图使用Jackson从生成的Json中排除所有空白字符串 我知道我可以使用下面的注释来过滤这个,但这似乎不能处理空白字符串。[只有空格的Stings]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
@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值