动态

详情 返回 返回

從零開始學Spring Boot系列-返回json數據 - 动态 详情

歡迎來到從零開始學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
源碼地址:https://gitee.com/daimajiangxin/springboot-learning

user avatar debuginn 头像 u_16769727 头像 lenglingx 头像 u_15702012 头像 fengliudedaxiang_esnzgz 头像 lu_lu 头像 aipaobudezuoyeben 头像 boxuegu 头像 nianqingyouweidenangua 头像 chenjiabing666 头像 chaochenyinshi 头像 wuliaodechaye 头像
点赞 58 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.