Spring Boot 返回 JSON 數據,一分鐘搞定!

在 WEB 項目中返回 JSON 數據是常見的交互形式,在 Spring Boot 中這一切都變得十分簡單。So easy!!!java

你所需具有的基礎

更多請在Java技術棧公衆號後臺回覆關鍵字:boot。web

如何返回 JSON 數據?

在 Spring Boot 中返回 JSON 數據很簡單,以下幾步。spring

加入依賴

<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

這個插件感謝知識星球球友的分享,簡單不錯,點擊文章底部的閱讀原文,能夠加入一塊兒學習。app

返回 XML 數據格式定義

1)定義返回方式

在 Controller 類上面用 @RestController 定義或者在方法上面用 @ResponseBody 定義,代表是在 Body 區域輸出數據。spring-boot

下面是使用示例:源碼分析

@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)自定義輸出格式

上面的方法直接返回對象,對象會自動轉換爲 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技術棧"}

上面演示了幾個經常使用的註解。3d

@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" 可獲取更多,轉載請原樣保留本信息。

相關文章
相關標籤/搜索