從零開始學Spring Boot系列-返回json資料

代码匠心發表於2024-02-29

歡迎來到從零開始學Spring Boot的旅程!在Spring Boot中,返回JSON資料是很常見的需求,特別是當我們構建RESTful API時。我們對上一篇的Hello World進行簡單的修改。

  1. 新增依賴
    首先,確保你的build.gradle檔案中已經包含了Spring Web的依賴,因為返回JSON資料通常與Web請求和響應有關。Spring Boot的starter-web已經包含了所有必要的依賴,所以如果你使用Spring Initializr建立的專案,這一步應該已經完成了。
    20240228210905

  2. 建立資料模型
    接下來,我們需要一個資料模型來表示我們要返回的JSON資料。先建立一個model的package來存放java類,建立一個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;
     }
    
    
  3. 建立控制器
    建立一個控制器來處理HTTP請求並返回JSON資料。使用@RestController和@RequestMapping註解來標記這個類,這樣Spring Boot就會自動將返回的物件轉換為JSON格式。@RequestMapping註解對請求處理類中的請求處理方法進行標註,@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() {
            // 建立一個User物件
            User user = new User("Alice", 30);
            return user; // Spring Boot會自動將User物件轉換為JSON格式
        }
    }
    
    
  4. 執行應用程式
    啟動你的Spring Boot應用程式。如果一切順利,當你訪問http://localhost:8080/user/getUser時,你應該能看到如下的JSON響應:
    20240229084207

  5. 自定義JSON輸出
    有時,你可能需要自定義JSON的輸出格式或者包含額外的資訊。你可以使用@JsonInclude、@JsonProperty等註解來控制Jackson庫(Spring Boot預設的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資料就會將name欄位重新命名為username,並且不會包含null值。

    20240229084659

  6. 總結
    在Spring Boot中返回JSON資料是一個簡單而直接的過程。透過使用@RestController註解和建立適當的資料模型,你可以很容易地構建RESTful API並返回格式化的JSON響應。記住,你可以使用Jackson庫的註解來進一步定製JSON的輸出格式。


我是程式碼匠心,和我一起學習更多精彩知識!!!掃描二維碼!關注我,實時獲取推送。

公眾號


源文來自:https://daimajiangxin.cn

相關文章