在使用阿里巴巴的插件返回對象是,如果需要對其進行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