阿里巴巴fastjson轉換對象時屬性爲空null的處理爲空串""的解決辦法

在使用阿里巴巴的插件返回對象是,如果需要對其進行json格式化一下,默認是不反回null屬性的,當然可以設置的,使用重載方法

JSONObject.toJSONString(travelWrite1, SerializerFeature.WriteMapNullValue

注意是使用SerializerFeature.WriteMapNullValue序列化規則

這裏介紹一下JSONObject.toJSONString(Object object, SerializerFeature... features)的具體序列化機制

QuoteFieldNames———-輸出key時是否使用雙引號,默認爲true 
WriteMapNullValue——–是否輸出值爲null的字段,默認爲false 
WriteNullNumberAsZero—-數值字段如果爲null,輸出爲0,而非null 
WriteNullListAsEmpty—–List字段如果爲null,輸出爲[],而非null 
WriteNullStringAsEmpty—字符類型字段如果爲null,輸出爲”“,而非null 
WriteNullBooleanAsFalse–Boolean字段如果爲null,輸出爲false,而非null

其中WriteNullStringAsEmpty序列化沒有按照預期,估計是bug,或者和spring mvc框架的不兼容導致的也可能,但是用什麼辦法解決呢,答案是使用過濾器

private ValueFilter filter = new ValueFilter() {
    @Override
    public Object process(Object obj, String s, Object v) {
    if(v==null)
        return "";
    return v;
    }
};
JSON.toJSONString(jsonMap, filter)

 官方項目: https://github.com/alibaba/fastjson

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章