最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot中如何使用Jackson

 更新時(shí)間:2020年11月07日 11:33:21   作者:DayRain  
這篇文章主要介紹了Springboot中如何使用Jackson,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下

1、SpringMVC中默認(rèn)集成

SpringMVC已經(jīng)默認(rèn)集成了JackSon,如下所示:

  @RequestMapping("/addUserInfo")
  public UserInfo addUserInfo(@RequestBody UserInfo userInfo){

  }

可以用UserInfo對(duì)象來接前臺(tái)傳過來的json,SpringMVC已經(jīng)幫我們自動(dòng)反序列化。

 可以看到,在SpringBoot中,只需要導(dǎo)入web starter,不需要添加其他的依賴,就可以使用Jackson。

2、時(shí)間格式化

在序列化的過程中,如果有Date格式,我們可以通過下面幾種方式來對(duì)時(shí)間字段進(jìn)行格式化。

2.1、注解方式

通過添加JsonFormat注解,可以固定日期格式。

public class UserInfo {

  private String name;

  private String password;

  private Integer age;

  @JsonFormat(pattern = "yyyy-MM-dd")
  private Date birth;

也可以通過這個(gè)注解指定時(shí)區(qū)(time zone)

2.2、重寫bean

也可以重新 JacksonHttpMessageConvertersConfiguration 類中的bean

@Configuration
public class WebMvcConfig {

  @Bean
  MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
    MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setDateFormat(new SimpleDateFormat("yyyy/MM/dd"));
    mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);
    return mappingJackson2HttpMessageConverter;
  }

}

在JacksonHttpMessageConvertersConfiguration這個(gè)類中,原來的方法是:

 @ConditionalOnClass({ObjectMapper.class})
  @ConditionalOnBean({ObjectMapper.class})
  @ConditionalOnProperty(
    name = {"spring.mvc.converters.preferred-json-mapper"},
    havingValue = "jackson",
    matchIfMissing = true
  )
  static class MappingJackson2HttpMessageConverterConfiguration {
    MappingJackson2HttpMessageConverterConfiguration() {
    }

    @Bean
    @ConditionalOnMissingBean(
      value = {MappingJackson2HttpMessageConverter.class},
      ignoredType = {"org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter", "org.springframework.data.rest.webmvc.alps.AlpsJsonHttpMessageConverter"}
    )
    MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(ObjectMapper objectMapper) {
      return new MappingJackson2HttpMessageConverter(objectMapper);
    }
  }

這是最新的版本的spring,與之前版本的略有差異,不過可以看到,給 mappingJackson2HttpMessageConverter方法注入了一個(gè)ObjectMapper,那么我們可不可以直接修改ObjectMapper呢?當(dāng)然可以,在Jackson的自動(dòng)配置類(JacksonAutoConfiguration)中,可以發(fā)現(xiàn):

@ConditionalOnClass({Jackson2ObjectMapperBuilder.class})
  static class JacksonObjectMapperConfiguration {
    JacksonObjectMapperConfiguration() {
    }

    @Bean
    @Primary
    @ConditionalOnMissingBean
    ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
      return builder.createXmlMapper(false).build();
    }
  }

在這個(gè)內(nèi)部類里,提供了ObjectMapper。所以我們可以直接重新這個(gè)Bean,也可以達(dá)到全局修改日期格式的作用。

@Configuration
public class WebMvcConfig {


  @Bean
  ObjectMapper jacksonObjectMapper() {
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
    return objectMapper;
  }
}

經(jīng)過測(cè)試,注解方式的優(yōu)先級(jí)要高于下面的兩種。

3、Jackson的簡(jiǎn)單使用

  //測(cè)試jackSon
  public static void main(String[] args) throws JsonProcessingException {
    UserInfo userInfo = getTestUser();
    ObjectMapper objectMapper = new ObjectMapper();

    //將對(duì)象序列化為json字符串
    objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); //忽略為null的字段
    String userJsonString = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(userInfo);
    System.out.println(userJsonString);


    //將json反序列化為java對(duì)象
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    UserInfo userInfo2 = objectMapper.readValue(userJsonString, UserInfo.class);
    System.out.println(userInfo2);
  }

本文作者:DayRain
本文鏈接:https://www.cnblogs.com/phdeblog/p/13234842.html

以上就是Springboot中如何使用Jackson的詳細(xì)內(nèi)容,更多關(guān)于Springboot中使用Jackson的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Spring Cloud Feign上傳文件的示例

    使用Spring Cloud Feign上傳文件的示例

    本篇文章主要介紹了使用Spring Cloud Feign上傳文件的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • JAVA基于Slack實(shí)現(xiàn)異常日志報(bào)警詳解

    JAVA基于Slack實(shí)現(xiàn)異常日志報(bào)警詳解

    這篇文章主要為大家介紹了JAVA基于Slack實(shí)現(xiàn)異常日志報(bào)警詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • EasyUi+Spring Data 實(shí)現(xiàn)按條件分頁(yè)查詢的實(shí)例代碼

    EasyUi+Spring Data 實(shí)現(xiàn)按條件分頁(yè)查詢的實(shí)例代碼

    這篇文章主要介紹了EasyUi+Spring Data 實(shí)現(xiàn)按條件分頁(yè)查詢的實(shí)例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-07-07
  • Java面試題沖刺第四天--數(shù)據(jù)庫(kù)

    Java面試題沖刺第四天--數(shù)據(jù)庫(kù)

    這篇文章主要為大家分享了最有價(jià)值的三道數(shù)據(jù)庫(kù)面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Springmvc應(yīng)用Mongodb分頁(yè)實(shí)現(xiàn)

    Springmvc應(yīng)用Mongodb分頁(yè)實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Springmvc應(yīng)用Mongodb分頁(yè)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • AsyncHttpClient KeepAliveStrategy源碼流程解讀

    AsyncHttpClient KeepAliveStrategy源碼流程解讀

    這篇文章主要為大家介紹了AsyncHttpClient KeepAliveStrategy源碼流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 一文掌握Spring Cookie和Session 是什么及區(qū)別介紹

    一文掌握Spring Cookie和Session 是什么及區(qū)別介紹

    Cookie和Session都是用于在客戶端和服務(wù)器之間傳遞信息的技術(shù),但它們的工作方式和使用場(chǎng)景有所不同,Cookie是在客戶端保存用戶信息的一種機(jī)制,而Session是在服務(wù)器端保存用戶信息的一種機(jī)制,本文介紹Spring Cookie和Session 是什么,感興趣的朋友一起看看吧
    2025-01-01
  • Java編程Post數(shù)據(jù)請(qǐng)求和接收代碼詳解

    Java編程Post數(shù)據(jù)請(qǐng)求和接收代碼詳解

    這篇文章主要介紹了Java編程Post數(shù)據(jù)請(qǐng)求和接收代碼詳解,涉及enctype的三種編碼,post與get等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • idea數(shù)據(jù)庫(kù)驅(qū)動(dòng)下載失敗的問題及解決

    idea數(shù)據(jù)庫(kù)驅(qū)動(dòng)下載失敗的問題及解決

    這篇文章主要介紹了idea數(shù)據(jù)庫(kù)驅(qū)動(dòng)下載失敗的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Servlet+JavaBean+JSP打造Java Web注冊(cè)與登錄功能

    Servlet+JavaBean+JSP打造Java Web注冊(cè)與登錄功能

    比作MVC的話,控制器部分采用Servlet來實(shí)現(xiàn),模型部分采用JavaBean來實(shí)現(xiàn),而大部分的視圖采用Jsp頁(yè)面來實(shí)現(xiàn),接下來我們就來詳細(xì)看看如何用Servlet+JavaBean+JSP打造Java Web注冊(cè)與登錄功能
    2016-05-05

最新評(píng)論

五寨县| 睢宁县| 含山县| 绥阳县| 侯马市| 英吉沙县| 清河县| 洛川县| 寿光市| 黑河市| 彰化县| 乌兰浩特市| 紫云| 东城区| 织金县| 芜湖市| 六盘水市| 象州县| 寿宁县| 贵阳市| 黎城县| 巩义市| 沙雅县| 泗水县| 昭苏县| 平湖市| 延津县| 岳池县| 嘉黎县| 伽师县| 游戏| 衡山县| 凤冈县| 岗巴县| 祥云县| 噶尔县| 台南市| 平泉县| 彭水| 丹江口市| 成都市|