簡體   English   中英

Jackson 如何自動反序列化 java.nio.file.Path?

[英]How does Jackson automatically deserialize java.nio.file.Path?

我不是在抱怨,而是想了解它為什么有效。

這是我的 Java 類:

public static class ExampleClass {
  private Path target;

  public Path getTarget() {
    return target;
  }

  public void setTarget(Path target) {
    this.target = target;
  }
}

這是 JSON:

{
  "target": "some/path"
}

現在一個簡單的測試表明它有效:

ObjectMapper mapper = new ObjectMapper();
ExampleClass exampleClass = mapper.readValue(json, ExampleClass.class);
assertEquals(Path.of("some/path"), exampleClass.getTarget());

但是如何? Path沒有(公共)構造函數,它接受String Jackson 怎么知道它需要調用Path.of()

Jackson 的ObjectMapper帶有開箱即用的預定義標准序列化器/反序列化器。 對於 Jackson 2.10.1版,有NioPathDeserializer (自2.8版起),在反序列化到Path對象時將調用它。

暫無
暫無

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

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