Art*_*nko 8 java json jackson java-8
假设我有这样一个类:
public static class Test {
private Optional<String> something;
public Optional<String> getSomething() {
return something;
}
public void setSomething(Optional<String> something) {
this.something = something;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我反序列化这个JSON,我得到一个空的可选:
{"something":null}
Run Code Online (Sandbox Code Playgroud)
但是如果缺少属性(在这种情况下只是空JSON),我得到null而不是Optional.我当然可以自己初始化字段,但我认为最好有一个null和缺少属性的机制.那么有没有办法让jackson反序列化缺少的属性为空可选?
Optional 并不是真的要用作字段,而是更多地用作返回值。为什么没有:
public static class Test {
private String something;
public Optional<String> getSomething() {
return Optional.ofNullable(something);
}
public void setSomething(String something) {
this.something = something;
}
}
Run Code Online (Sandbox Code Playgroud)
对于没有 getter/setter 的解决方案,请确保something像这样初始化:
public Optional<String> something = Optional.empty();
Run Code Online (Sandbox Code Playgroud)