【问题标题】:Jackson Json Serialization : Remove Blank stringsJackson Json 序列化:删除空白字符串
【发布时间】:2020-01-20 10:19:05
【问题描述】:

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

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

@JsonInclude(JsonInclude.Include.NON_EMPTY) 

有没有办法做到这一点?

【问题讨论】:

    标签: java json jackson fasterxml


    【解决方案1】:

    你可以使用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() 用于结构化类型的内容)将是 用于确定纳入标准。过滤对象的 equals() 用值调用方法进行序列化;如果它返回真值是 排除(即过滤掉);如果包含 false 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-08
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 2012-11-08
      • 2019-10-31
      相关资源
      最近更新 更多