詳解springboot之jackson的兩種配置方式
springboot 針對(duì)jackson是自動(dòng)化配置的,如果需要修改,有兩種方式:
方式一:通過(guò)application.yml
配置屬性說(shuō)明:##
spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具體的格式化類(lèi)的全限定名
spring.jackson.deserialization是否開(kāi)啟Jackson的反序列化
spring.jackson.generator是否開(kāi)啟json的generators.
spring.jackson.joda-date-time-format指定Joda date/time的格式,比如yyyy-MM-ddHH:mm:ss). 如果沒(méi)有配置的話(huà),dateformat會(huì)作為backup
spring.jackson.locale指定json使用的Locale.
spring.jackson.mapper是否開(kāi)啟Jackson通用的特性.
spring.jackson.parser是否開(kāi)啟jackson的parser特性.
spring.jackson.property-naming-strategy指定PropertyNamingStrategy(CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)或者指定PropertyNamingStrategy子類(lèi)的全限定類(lèi)名.
spring.jackson.serialization是否開(kāi)啟jackson的序列化.
spring.jackson.serialization-inclusion指定序列化時(shí)屬性的inclusion方式,具體查看JsonInclude.Include枚舉.
spring.jackson.time-zone指定日期格式化時(shí)區(qū),比如America/Los_Angeles或者GMT+10.
常用配置:
spring: jackson: #日期格式化 date-format: yyyy-MM-dd HH:mm:ss serialization: #格式化輸出 indent_output: true #忽略無(wú)法轉(zhuǎn)換的對(duì)象 fail_on_empty_beans: false #設(shè)置空如何序列化 defaultPropertyInclusion: NON_EMPTY deserialization: #允許對(duì)象忽略json中不存在的屬性 fail_on_unknown_properties: false parser: #允許出現(xiàn)特殊字符和轉(zhuǎn)義符 allow_unquoted_control_chars: true #允許出現(xiàn)單引號(hào) allow_single_quotes: true
方式二:使用重新注入ObjectMapper
** 在配置bean中使用下面的配置 **
@Bean @Primary @ConditionalOnMissingBean(ObjectMapper.class) public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) { ObjectMapper objectMapper = builder.createXmlMapper(false).build(); // 通過(guò)該方法對(duì)mapper對(duì)象進(jìn)行設(shè)置,所有序列化的對(duì)象都將按改規(guī)則進(jìn)行系列化 // Include.Include.ALWAYS 默認(rèn) // Include.NON_DEFAULT 屬性為默認(rèn)值不序列化 // Include.NON_EMPTY 屬性為 空("") 或者為 NULL 都不序列化,則返回的json是沒(méi)有這個(gè)字段的。這樣對(duì)移動(dòng)端會(huì)更省流量 // Include.NON_NULL 屬性為NULL 不序列化 objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); // 允許出現(xiàn)特殊字符和轉(zhuǎn)義符 objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); // 允許出現(xiàn)單引號(hào) objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); // 字段保留,將null值轉(zhuǎn)為"" objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() { @Override public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeString(""); } }); return objectMapper; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
一文搞懂Runnable、Callable、Future、FutureTask及應(yīng)用
一般創(chuàng)建線(xiàn)程只有兩種方式,一種是繼承Thread,一種是實(shí)現(xiàn)Runnable接口,在Java1.5之后就有了Callable、Future,這二種可以提供線(xiàn)程執(zhí)行完的結(jié)果,本文主要介紹了Runnable、Callable、Future、FutureTask及應(yīng)用,感興趣的可以了解一下2023-08-08MyBatis中關(guān)于SQL的寫(xiě)法總結(jié)
這篇文章主要介紹了MyBatis中關(guān)于SQL的寫(xiě)法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08IntelliJ IDEA 2021.1 EAP 4 發(fā)布:字體粗細(xì)可調(diào)整Git commit template 支持
這篇文章主要介紹了IntelliJ IDEA 2021.1 EAP 4 發(fā)布:字體粗細(xì)可調(diào)整,Git commit template 支持,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02java連接orcale數(shù)據(jù)庫(kù)示例分享
這篇文章主要介紹了java連接orcale數(shù)據(jù)庫(kù)示例,需要的朋友可以參考下2014-02-02java應(yīng)用cpu占用過(guò)高問(wèn)題分析及解決方法
這篇文章主要介紹了java應(yīng)用cpu占用過(guò)高問(wèn)題分析及解決方法,具有一定參考價(jià)值,需要的朋友可以參考下。2017-09-09Java Optional<Foo>轉(zhuǎn)換成List<Bar>的實(shí)例方法
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于Java Optional<Foo>轉(zhuǎn)換成List<Bar>的實(shí)例方法,有需要的朋友們可以跟著學(xué)習(xí)下。2021-06-06java動(dòng)態(tài)代理實(shí)現(xiàn)代碼
這篇文章主要介紹了java 動(dòng)態(tài)代理的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下,希望能給你帶來(lái)幫助2021-07-07SpringBoot簡(jiǎn)單實(shí)現(xiàn)文件上傳
這篇文章主要介紹了SpringBoot簡(jiǎn)單實(shí)現(xiàn)文件上傳,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-09-09