我尝试使用Jackson从生成的Json中排除所有空字符串。我知道我可以使用下面的注解来过滤这个,但是这似乎不能处理空白字符串。
@JsonInclude(JsonInclude.Include.NON_EMPTY)
有什么办法吗?
agxfikkp1#
您可以使用custom value filter,请尝试这个,并让我知道如果这对您有效-
custom value filter
@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
指示要用于确定包含条件的单独filter对象(由JsonInclude.valueFilter()为值本身指定,和/或由JsonInclude.contentFilter()为结构化类型的内容指定)的值。使用要序列化的值调用Filter对象的equals()方法;如果返回真值,则排除(即过滤掉);如果包含false值。
filter
wvyml7n52#
我不得不从JSON响应中删除装载和尾随空格来解决这个问题。
2条答案
按热度按时间agxfikkp1#
您可以使用
custom value filter
,请尝试这个,并让我知道如果这对您有效-这是自定义过滤器
根据自定义过滤器的javadoc-
指示要用于确定包含条件的单独
filter
对象(由JsonInclude.valueFilter()为值本身指定,和/或由JsonInclude.contentFilter()为结构化类型的内容指定)的值。使用要序列化的值调用Filter对象的equals()方法;如果返回真值,则排除(即过滤掉);如果包含false值。wvyml7n52#
我不得不从JSON响应中删除装载和尾随空格来解决这个问题。