簡體   English   中英

傑克遜。 將缺失的屬性反序列化為空 Optional<T>

[英]Jackson. Deserialize missing properties as empty Optional<T>

假設我有一個這樣的課程:

public static class Test {

    private Optional<String> something;

    public Optional<String> getSomething() {
        return something;
    }

    public void setSomething(Optional<String> something) {
        this.something = something;
    }
    
}

如果我反序列化這個 JSON,我會得到一個空的 Optional:

{"something":null}

但是如果缺少屬性(在這種情況下只是空的 JSON),我會得到 null 而不是Optional<T> 我當然可以自己初始化字段,但我認為最好有一種機制來處理null和缺失的屬性。 那么有沒有辦法讓傑克遜將缺失的屬性反序列化為空的Optional<T>

Optional 並不是真的要用作字段,而是更多地用作返回值。 為什么沒有:

public static class Test {
  private String something;
  public Optional<String> getSomething() {
    return Optional.ofNullable(something);
  }
  public void setSomething(String something) {
    this.something = something;
  }
}

對於沒有 getter/setter 的解決方案,請確保像這樣初始化something

public Optional<String> something = Optional.empty();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM