摘要:在項目中返回數據是常見的交互形式,在中這一切都變得十分簡單。返回數據格式定義定義返回方式在類上面用定義或者在方法上面用定義,表明是在區域輸出數據。返回數據棧長正在拼命寫作中,過兩天我的公眾號會第一時間分享。
在 WEB 項目中返回 JSON 數據是常見的交互形式,在 Spring Boot 中這一切都變得十分簡單。So easy!!!
你所需具備的基礎什么是 Spring Boot?
Spring Boot 核心配置文件詳解
Spring Boot 開啟的 2 種方式
Spring Boot 自動配置原理、實戰
Spring Boot 2.x 啟動全過程源碼分析
更多請在Java技術棧微信公眾號后臺回復關鍵字:boot。
如何返回 JSON 數據?在 Spring Boot 中返回 JSON 數據很簡單,如下幾步。
加入依賴org.springframework.boot spring-boot-starter-parent 2.0.4.RELEASE org.springframework.boot spring-boot-starter-web
除了 Spring Boot 必須自帶的 parent 依賴外,僅僅只需要加入這個 spring-boot-starter-web 包即可,它會自動包含所有 JSON 處理的包,如下圖所示。
這個插件感謝知識星球球友的分享,簡單不錯,點擊文章底部的閱讀原文,可以加入一起學習。
返回 XML 數據格式定義在 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; } }
上面的方法直接返回對象,對象會自動轉換為 XML 格式,不過是默認的標簽,可以通過以下標簽進行自定義 XML 格式。
public class User { @JsonProperty("user-name") private String userName; private Long id; private Integer age; @JsonIgnore private 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 格式數據就是這么簡單,有什么不懂的可以點擊閱讀原文加入星球和大家一起學習討論。
《Spring Boot 返回 XML 數據》棧長正在拼命寫作中,過兩天我的公眾號會第一時間分享。
本文原創首發于微信公眾號:Java技術棧(id:javastack),關注公眾號在后臺回復 "boot" 可獲取更多,轉載請原樣保留本信息。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72688.html
摘要:小紅要以最低成本最快速度推出版本,投放市場,收集反饋,持續迭代。總結在技能掌握充足的情況下,個人感覺開發效率要略高于。 我個人是比較不喜歡去正兒八經的比較兩個框架的,這樣沒有意義,不過欲善其事先利其器! 技術是相通的,但是在某個特定的領域的某個階段肯定有相對最適合的一個工具! 這里比較不是從技術角度比較,而是從公司技術選型考慮的,特別是初創的互聯網創業公司。沒辦法,誰讓互聯網公司離不開...
摘要:小紅要以最低成本最快速度推出版本,投放市場,收集反饋,持續迭代。總結在技能掌握充足的情況下,個人感覺開發效率要略高于。 我個人是比較不喜歡去正兒八經的比較兩個框架的,這樣沒有意義,不過欲善其事先利其器! 技術是相通的,但是在某個特定的領域的某個階段肯定有相對最適合的一個工具! 這里比較不是從技術角度比較,而是從公司技術選型考慮的,特別是初創的互聯網創業公司。沒辦法,誰讓互聯網公司離不開...
摘要:比如使用的時候指定使用哪個環境的配置在微服務架構下,服務的數量會比之前的單體應用多,部署的節點數量也會很多。今天主要是講下在中如何對接進行配置管理。 問題背景 在實際工作中,我們的開發環境,測試環境,生產環境對應的 Mysql 數據庫,Redis 這些信息都不一樣,每個環境都有對應的一套配置,在 Spring Boot 中我們通常會編寫多個配置文件,也就是每個環境一個配置文件。 比如:...
摘要:構建服務本指南將引導你完成使用創建服務的過程。接下來,你將創建將為這些問候語提供服務的資源控制器。告訴在包中查找其他組件配置和服務,允許它找到控制器。顯示日志輸出,該服務應在幾秒內啟動并運行。 構建RESTful Web服務 本指南將引導你完成使用Spring創建hello world RESTful Web服務的過程。 將要構建什么 你將構建一個接受HTTP GET請求的服務: ht...
閱讀 1450·2021-11-25 09:43
閱讀 2591·2021-09-24 10:30
閱讀 3665·2021-09-06 15:02
閱讀 3601·2019-08-30 15:55
閱讀 3306·2019-08-30 15:53
閱讀 1700·2019-08-30 15:52
閱讀 2147·2019-08-30 14:21
閱讀 2013·2019-08-30 13:55