歡迎來到從零開始學(xué)Spring Boot的旅程耻蛇!在Spring Boot中恶座,返回JSON數(shù)據(jù)是很常見的需求鲤拿,特別是當(dāng)我們構(gòu)建RESTful API時胶台。我們對上一篇的Hello World進(jìn)行簡單的修改歼疮。
-
添加依賴
首先,確保你的build.gradle文件中已經(jīng)包含了Spring Web的依賴诈唬,因為返回JSON數(shù)據(jù)通常與Web請求和響應(yīng)有關(guān)韩脏。Spring Boot的starter-web已經(jīng)包含了所有必要的依賴,所以如果你使用Spring Initializr創(chuàng)建的項目铸磅,這一步應(yīng)該已經(jīng)完成了骤素。
20240228210905 -
創(chuàng)建數(shù)據(jù)模型
接下來匙睹,我們需要一個數(shù)據(jù)模型來表示我們要返回的JSON數(shù)據(jù)。先創(chuàng)建一個model的package來存放java類济竹,創(chuàng)建一個User的Java類來表示這個模型痕檬。package cn.daimajiangxin.springboot.learning.model; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; @Data @Slf4j @AllArgsConstructor public class User { private String name; private int age; }
-
創(chuàng)建控制器
創(chuàng)建一個控制器來處理HTTP請求并返回JSON數(shù)據(jù)。使用@RestController和@RequestMapping注解來標(biāo)記這個類送浊,這樣Spring Boot就會自動將返回的對象轉(zhuǎn)換為JSON格式梦谜。@RequestMapping注解對請求處理類中的請求處理方法進(jìn)行標(biāo)注,@GetMapping注解用于處理HTTP GET請求袭景,并將請求映射到具體的處理方法中唁桩。package cn.daimajiangxin.springboot.learning.controller; import cn.daimajiangxin.springboot.learning.model.User; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/user") public class UserController { @GetMapping("/getUser") public User getUser() { // 創(chuàng)建一個User對象 User user = new User("Alice", 30); return user; // Spring Boot會自動將User對象轉(zhuǎn)換為JSON格式 } }
-
運(yùn)行應(yīng)用程序
啟動你的Spring Boot應(yīng)用程序。如果一切順利耸棒,當(dāng)你訪問http://localhost:8080/user/getUser時荒澡,你應(yīng)該能看到如下的JSON響應(yīng):
20240229084207 -
自定義JSON輸出
有時,你可能需要自定義JSON的輸出格式或者包含額外的信息与殃。你可以使用@JsonInclude单山、@JsonProperty等注解來控制Jackson庫(Spring Boot默認(rèn)的JSON處理庫)的序列化行為。例如幅疼,你可以使用@JsonInclude(JsonInclude.Include.NON_NULL)來避免輸出null值米奸,或者使用@JsonProperty來重命名JSON字段。import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; @Data @Slf4j @AllArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class User { @JsonProperty("username") private String name; private int age; }
這樣爽篷,返回的JSON數(shù)據(jù)就會將name字段重命名為username悴晰,并且不會包含null值。
20240229084659 總結(jié)
在Spring Boot中返回JSON數(shù)據(jù)是一個簡單而直接的過程逐工。通過使用@RestController注解和創(chuàng)建適當(dāng)?shù)臄?shù)據(jù)模型铡溪,你可以很容易地構(gòu)建RESTful API并返回格式化的JSON響應(yīng)。記住泪喊,你可以使用Jackson庫的注解來進(jìn)一步定制JSON的輸出格式佃却。