一篇文章帶你搞定 SpringBoot 如何使用 Gson

一、前期配置

在這裏插入圖片描述
項目創建後,查看依賴包,會發現使用的是默認的 json:
在這裏插入圖片描述
所以如果想要使用需要首先排除默認的 json 依賴:
在這裏插入圖片描述
此時會發現對應的 json 包已經消失了,然後加入需要的 gson 依賴,這裏會發現不需要寫相應的版本號,因爲也已經納入到了SpringBoot中了

<dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
</dependency>

二、示例演示

實體類 User:

public class User {
    private Integer id;
    private String name;
    private String address;
    private Date birthday;
    //get/set 方法省略
}

UserController

@RestController
public class Controller {

    @GetMapping(value = "/user")
    public User getUser(){
        User user = new User();
        user.setId(01);
        user.setAddress("北京");
        user.setName("Yolo");
        user.setBirthday(new Date());
        return user;
    }
}

結果展示:
在這裏插入圖片描述

三、源碼分析

具體過程同:一篇文章帶你深入分析 SpringBoot 中默認的 JSON 解析方式

同樣進入:GsonHttpMessageConvertersConfiguration
在這裏插入圖片描述
可以打斷點自己試驗下

同樣這裏以日期格式化來嘗試自定義 GsonHttpMessageConverter

@Configuration
public class WebMvcConfig {
    @Bean
    GsonHttpMessageConverter gsonHttpMessageConverter(){
        GsonHttpMessageConverter converter = new GsonHttpMessageConverter();
        //格式化日期
        converter.setGson(new GsonBuilder().setDateFormat("yyyy-MM-dd").create());
        return converter;
    }
}

在這裏插入圖片描述
同理,可以看出這裏關鍵起作用的其實就是 Gson
在這裏插入圖片描述
進入GsonAutoConfiguration
在這裏插入圖片描述
發現這裏同樣可以自定義 Gson ,來實現日期格式化:

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

所以如果你有一些其他需求,可以自己單獨配置,使用自己定義的 GsonHttpMessageConverter


最後
在這裏插入圖片描述

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