[英]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.