JacksonJson序列号:删除空白字符串

c8ib6hqw  于 2022-12-24  发布在  其他
关注(0)|答案(2)|浏览(230)

我尝试使用Jackson从生成的Json中排除所有空字符串。
我知道我可以使用下面的注解来过滤这个,但是这似乎不能处理空白字符串。

@JsonInclude(JsonInclude.Include.NON_EMPTY)

有什么办法吗?

agxfikkp

agxfikkp1#

您可以使用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值。

wvyml7n5

wvyml7n52#

我不得不从JSON响应中删除装载和尾随空格来解决这个问题。

相关问题