首頁  >  文章  >  Java  >  Spring Boot傳回JSON 資料的方法介紹(附範例)

Spring Boot傳回JSON 資料的方法介紹(附範例)

不言
不言轉載
2018-12-14 09:55:273112瀏覽

這篇文章帶給大家的內容是關於Spring Boot返回JSON 資料的方法介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助

在WEB 專案中傳回JSON 資料是常見的互動形式,在Spring Boot 中這一切都變得十分簡單。 So easy!!!

如何傳回 JSON 資料?

在 Spring Boot 中傳回 JSON 資料很簡單,如下幾步。

加入依賴

<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 處理的包,如下圖所示。

Spring Boot傳回JSON 資料的方法介紹(附範例)

返回XML 資料格式定義

#1)定義返回方式

在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;
    }

}
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技术栈"}

上面示範了幾個常用的註解。

@JsonProperty: 可用來自訂屬性標籤名稱;

#@JsonIgnore: 可用來忽略不想輸出某個屬性的標籤;

@JsonInclude: 可用於動態包含屬性的標籤,如可以不包含為null 值的屬性;

更多註解可以查看這個套件:

Spring Boot傳回JSON 資料的方法介紹(附範例)

如何手動完成物件和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 資料的方法介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除