如何全局配置 fastdfs 的策略
在mvc裏面實現全局的fastdfs的全局序列化
/*
* 解決序列問題
* */
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fjc = new FastJsonConfig();
// 配置序列化策略
fjc.setSerializerFeatures(
//將中文都會序列化爲uXXXX格式,字節數會多一些,但是能兼容IE 6,默認爲false
SerializerFeature.BrowserCompatible,
//List字段如果爲null,輸出爲[],而非null
SerializerFeature.WriteNullListAsEmpty,
//字符類型字段如果爲null,輸出爲”“,而非null
SerializerFeature.WriteNullStringAsEmpty,
//全局修改時間
SerializerFeature.WriteDateUseDateFormat
);
fjc.setDateFormat(DateTimeUtil.FULL_FORMAT);
fastJsonConverter.setFastJsonConfig(fjc);
converters.add(fastJsonConverter);
}
常用FastJSON的SerializerFeature特性及日期轉換格式
SerializerFeature.PrettyFormat:格式化輸出
SerializerFeature.WriteMapNullValue:是否輸出值爲null的字段,默認爲false
SerializerFeature.DisableCircularReferenceDetect:消除循環引用
SerializerFeature.WriteNullStringAsEmpty:將爲null的字段值顯示爲""
WriteNullListAsEmpty:List字段如果爲null,輸出爲[],而非null
WriteNullNumberAsZero:數值字段如果爲null,輸出爲0,而非null
WriteNullBooleanAsFalse:Boolean字段如果爲null,輸出爲false,而非null
SkipTransientField:如果是true,類中的Get方法對應的Field是transient,序列化時將會被忽略。默認爲true
SortField:按字段名稱排序後輸出。默認爲false
WriteDateUseDateFormat:全局修改日期格式,默認爲false。JSON.DEFFAULT_DATE_FORMAT = “yyyy-MM-dd”;JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);
BeanToArray:將對象轉爲array輸出
QuoteFieldNames:輸出key時是否使用雙引號,默認爲true
UseSingleQuotes:輸出key時使用單引號而不是雙引號,默認爲false(經測試,這裏的key是指所有的輸出結果,而非key/value的key,而是key,和value都使用單引號或雙引號輸出)
常用日期格式
YYYY-MM-dd'T'HH:mm:ssXXX + SerializerFeature.WriteDateUseDateFormat = SerializerFeature.UseISO8601DateFormat
YYYY-MM-dd'T'HH:mm:ss:sssZ
YYYY-MM-dd'T'HH:mm:ss:sss'Z'
YYYY-MM-dd'T'HH:mm:ss:sssXXX
YYYY-MM-dd HH:mm:ss