Jackson 序列化對象成 JSON 字符串,忽略部分字段(屬性)

一、屬性上 加 @JsonIgnorejava

這種方式做用於全局,只要是有這個對象的序列化,就會忽略註解過的這部分字段。json

二、上面那種方式須要在 bean 上加註解,做用於全局,可是有的時候,咱們可能不須要在全部狀況下都忽略這個對象的這些字段,下面這種方式能夠支持定製過濾方式。app

public final class JsonFilterUtil {

    /**
     * 添加過濾的字段,這裏過濾的是 ThinActivityInfo 這個 bean 下的 
     * "startAt", "expiredAt", "extra" 三個字段
     */
    public static void addFilterForMapper(ObjectMapper mapper) {
        SimpleBeanPropertyFilter fieldFilter = SimpleBeanPropertyFilter.serializeAllExcept(
                Sets.newHashSet("startAt", "expiredAt", "extra"));
        SimpleFilterProvider filterProvider = new SimpleFilterProvider().addFilter("fieldFilter", fieldFilter);
        mapper.setFilterProvider(filterProvider).addMixIn(ThinActivityInfo.class, FieldFilterMixIn.class);
    }

    /**
     * 定義一個類或接口
     */
    @JsonFilter("fieldFilter")
    interface FieldFilterMixIn{
    }
}

原文連接
http://zhige.me/2019/02/28/20...ide

相關文章
相關標籤/搜索