Jackson註解的使用實例.摘記

jsonInclude

實體類/屬性使用的註解,用於忽略NULL的屬性,空的屬性或者NULL的類.
例如創建一個銀行賬戶類,序列化時如果id爲空,那麼該屬性將不會被序列化。
爲什麼使用NON_NULL:比如讀取數據庫數據,空值如果序列化傳輸的,那麼會出現空值的字段,可能需要進行判空操作。

public class Account {
    @JsonInclude(Include.NON_NULL)
    // 賬戶id,只有在非null,或者非空的情況下才序列化
    private int id;
    }

jsonProperty

@JsonProperty 註解在私有屬性上,標明該私有字段在序列化時可見,另外可以指定修改序列化的名稱
示例如下,jsonProperty修改字段名稱,序列化後字段用name表示而不是username

@JsonProperty("name")
    private String username;

示例如下,

// 向前端返回響應數據的時候,忽略password,該屬性不參加序列化,防止泄露密碼
    @JsonIgnore
    public String getPassword() {
        return password;
    }
 // 從前端接受參數的時候,可以正常反序列化
    @JsonProperty
    public void setPassword(String password) {
        this.password = password;
    }

JsonIgnore

屬性使用的註解,用於忽略指定屬性。前面示例中已經展示用法,忽略密碼不進行序列化。

JsonIgnoreProperties

實體類使用的註解,用於序列化的時候忽略指定的一系列屬性,或者反序列化的時候忽略未知的屬性(沒有getter/setter的屬性)。
序列化的時候,@JsonIgnoreProperties({“prop1”, “prop2”}),忽略列表中的屬性prop1,prop2。
反序列化的時候,@JsonIgnoreProperties(ignoreUnknown=true),忽略沒有get/set的屬性。

JsonIgnoreType

實體類使用的註解,表示該類被忽略。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章