jackson 序列化配置詳解

         //這個特性,決定了解析器是否將自動關閉那些不屬於parser自己的輸入源。
        // 如果禁止,則調用應用不得不分別去關閉那些被用來創建parser的基礎輸入流InputStream和reader;
        //默認是true
        objectMapper.configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, true);
        //是否允許解析使用Java/C++ 樣式的註釋(包括'/'+'*' 和'//' 變量)
        objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);
 
        //設置爲true時,屬性名稱不帶雙引號
        objectMapper.configure(JsonGenerator.Feature.QUOTE_FIELD_NAMES, false);
        //反序列化是是否允許屬性名稱不帶雙引號
        objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
 
        //是否允許單引號來包住屬性名稱和字符串值
        objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
 
        //是否允許JSON字符串包含非引號控制字符(值小於32的ASCII字符,包含製表符和換行符)
        objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
 
        //是否允許JSON整數以多個0開始
        objectMapper.configure(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS, true);
 
        //null的屬性不序列化
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
 
        //按字母順序排序屬性,默認false
        objectMapper.configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY,true);
 
        //是否以類名作爲根元素,可以通過@JsonRootName來自定義根元素名稱,默認false
        objectMapper.configure(SerializationFeature.WRAP_ROOT_VALUE,true);
 
        //是否縮放排列輸出,默認false
        objectMapper.configure(SerializationFeature.INDENT_OUTPUT,false);
 
        //序列化Date日期時以timestamps輸出,默認true
        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,true);
 
        //序列化枚舉是否以toString()來輸出,默認false,即默認以name()來輸出
        objectMapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
 
        //序列化枚舉是否以ordinal()來輸出,默認false
        objectMapper.configure(SerializationFeature.WRITE_ENUMS_USING_INDEX,false);
 
        //序列化單元素數組時不以數組來輸出,默認false
        objectMapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING,true);
 
        //序列化Map時對key進行排序操作,默認false
        objectMapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS,true);
 
        //序列化char[]時以json數組輸出,默認false
        objectMapper.configure(SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS,true);
 
        //序列化BigDecimal時是輸出原始數字還是科學計數,默認false,即以toPlainString()科學計數方式來輸出
        objectMapper.configure(SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN,true);

 

@JsonFormat(pattern = "yyyy-MM-dd'T' HH:mm:ss:SSS'Z'",timezone = "GMT+8")
時間格式註解 類型必須是Date,否則不生效

 

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