javascript
Spring Boot 返回 JSON 数据,一分钟搞定!
在 WEB 項目中返回 JSON 數據是常見的交互形式,在 Spring Boot 中這一切都變得十分簡單。So easy!!!
你所需具備的基礎
-
什么是 Spring Boot?
-
Spring Boot 核心配置文件詳解
-
Spring Boot 開啟的 2 種方式
-
Spring Boot 自動配置原理、實戰
-
Spring Boot 2.x 啟動全過程源碼分析
如何返回 JSON 數據?
在 Spring Boot 中返回 JSON 數據很簡單,如下幾步。
加入依賴
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.4.RELEASE</version> </parent><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>除了 Spring Boot 必須自帶的 parent 依賴外,僅僅只需要加入這個?spring-boot-starter-web?包即可,它會自動包含所有 JSON 處理的包,如下圖所示。
這個插件感謝知識星球球友的分享,簡單不錯,點擊文章底部的閱讀原文,可以加入一起學習。
返回 JSON 數據格式定義
1)定義返回方式
在 Controller 類上面用?@RestController?定義或者在方法上面用?@ResponseBody?定義,表明是在 Body 區域輸出數據。
下面是使用示例:
@RestController public?class?JsonTest?{@GetMapping(value?=?"/user/{userId}")public?User?getUserInfo(@PathVariable("userId")?String?userId)?{User?user?=?new?User("Java技術棧",?18);user.setId(Long.valueOf(userId));return?user;}}2)自定義輸出格式
上面的方法直接返回對象,對象會自動轉換為 JSON 格式,不過是默認的標簽,可以通過以下標簽進行自定義 JSON 格式。
public?class?User?{@JsonProperty("user-name")private?String?userName;private?Long?id;private?Integer?age;@JsonIgnoreprivate?String?address;@JsonInclude(JsonInclude.Include.NON_NULL)private?String?memo;//?get?set?略}程序輸出:
{"id":1,"age":18,"user-name":"Java技術棧"}上面演示了幾個常用的注解。
@JsonProperty:?可用來自定義屬性標簽名稱;
@JsonIgnore:?可用來忽略不想輸出某個屬性的標簽;
@JsonInclude:?可用來動態包含屬性的標簽,如可以不包含為 null 值的屬性;
更多注解可以查看這個包:
如何手動完成對象 和 Json 的互轉?
jackson-databind?包里面有一個?com.fasterxml.jackson.databind.ObjectMapper?類可以完成對象和 Json 數據的互轉,下面是一個簡單的合作示例。
ObjectMapper?objectMapper?=?new?ObjectMapper();String?userJsonStr?=?objectMapper.writeValueAsString(user);User?jsonUser?=?objectMapper.readValue(userJsonStr,?User.class);更多相關的使用及原理可以查看這個包。
總結
以上是生活随笔為你收集整理的Spring Boot 返回 JSON 数据,一分钟搞定!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员的时间管理哲学 —— 如何更好的利
- 下一篇: 看看这些被同事喷的 JS 代码风格你写过