1. 程式人生 > 程式設計 >SpringBoot整合Gson 整合Fastjson的例項詳解

SpringBoot整合Gson 整合Fastjson的例項詳解

SpringBoot整合Gson 整合Fastjson

一、SpringBoot整合Gson

1、pom依賴

# 在SpringBoot中給我們自帶了json解析器,我們需要移除SpringBoot自帶的jackson,在新增Gson依賴

<dependencies>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <!--移除jackson依賴-->
  <exclusions>
   <exclusion>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-json</artifactId>
   </exclusion>
  </exclusions>
 </dependency>
 <!--新增Gson依賴-->
 <dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
 </dependency>
</dependencies>

2、User實體

/**
 * @Create_Author msfh
 * @Create_Date 2020-11-25 15:54:15
 * @Description User實體
 */
public class User {
 private Integer id;
 private String name;
 private Date birthday;

 @Override
 public String toString() {
  return "User{" +
    "id=" + id +
    ",name='" + name + '\'' +
    ",birthday=" + birthday +
    '}';
 }
 /**省略set&get**/
}

3、UserController

/**
 * @Create_Author msfh
 * @Create_Date 2020-11-25 15:55:15
 * @Description UserController控制器
 */
@RestController
public class UserController {

 @GetMapping("/user")
 public List<User> getUsers(){
  ArrayList<User> users = new ArrayList<>();
  for (int i = 0; i < 10; i++) {
   User user = new User();
   user.setId(i);
   user.setName("msfh-->"+i);
   user.setBirthday(new Date());
   users.add(user);
  }
  return users;
 }

}

4、WebMvcConfig

# 在之前的一篇部落格中有介紹,大家不太明白可以先看一下上一篇部落格,這次就不放測試的結果了!
# 在GsonHttpMessageConvertersConfiguration中含有GsonHttpMessageConverter
# 在GsonAutoConfiguration中含有Gson
# 我們可以分別寫兩個bean去實現gson的配置(GsonHttpMessageConverter或Gson)
# 建議大家沒事的話,可以看下原始碼
/**
 * @Create_Author msfh
 * @Create_Date 2020-11-25 16:05:56
 * @Description WebMvcConfig配置類
 */
@Configuration
public class WebMvcConfig {

 //@Bean
 //GsonHttpMessageConverter gsonHttpMessageConverter(){
 // GsonHttpMessageConverter converter = new GsonHttpMessageConverter();
 // converter.setGson(new GsonBuilder().setDateFormat("yyyy-MM-dd").create());
 // return converter;
 //}

 @Bean
 Gson gson(){
  return new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
 }

}

二、SpringBoot整合FastJson

1、pom依賴

# 這個沒什麼好說的,還是移除自帶的Jackson,新增fastjson,不再做過多解釋

<dependencies>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <!--移除jackson依賴-->
  <exclusions>
   <exclusion>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-json</artifactId>
   </exclusion>
  </exclusions>
 </dependency>
 <!--新增fastjson依賴-->
 <dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.74</version>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
 </dependency>
</dependencies>

2、User實體(上邊程式碼)

3、UserController(上邊程式碼)

4、WebMvcConfig

# 在fastjson中稍微和之前兩種不一致
# 在FastJsonHttpMessageConverter找到FastJsonConfig看一下

/**
 * @Create_Author msfh
 * @Create_Date 2020-11-25 16:05:56
 * @Description WebMvcConfig配置類
 */
@Configuration
public class WebMvcConfig {

 @Bean
 FastJsonHttpMessageConverter fastJsonHttpMessageConverter(){
  FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
  FastJsonConfig config = new FastJsonConfig();
  config.setDateFormat("yyyy/MM/dd");
  converter.setFastJsonConfig(config);
  return converter;
 }

}

5、測試(無問題)

到此這篇關於SpringBoot整合Gson 整合Fastjson的文章就介紹到這了,更多相關SpringBoot整合Gson 內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!