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