Mor*_*sen 4 java json jackson java.nio.file
我不是在抱怨,而是想了解它为什么有效。
这是我的 Java 类:
public static class ExampleClass {
private Path target;
public Path getTarget() {
return target;
}
public void setTarget(Path target) {
this.target = target;
}
}
Run Code Online (Sandbox Code Playgroud)
这是 JSON:
{
"target": "some/path"
}
Run Code Online (Sandbox Code Playgroud)
现在一个简单的测试表明它有效:
ObjectMapper mapper = new ObjectMapper();
ExampleClass exampleClass = mapper.readValue(json, ExampleClass.class);
assertEquals(Path.of("some/path"), exampleClass.getTarget());
Run Code Online (Sandbox Code Playgroud)
但是如何?中没有(公共)构造函数Path,它接受String. Jackson 怎么知道它需要调用Path.of()?
Jackson'sObjectMapper带有预定义的标准序列化器/解串器开箱即用。对于 Jackson 版本2.10.1,当反序列化到对象时将调用NioPathDeserializer(自 version 2.8)Path。
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |