杰克逊。将缺少的属性反序列化为空可选

时间:2016-01-27 09:20:36

标签: 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;
        }

    }

如果我反序列化这个JSON,我得到一个空的Optional:

{"something":null}

但是如果缺少属性(在这种情况下只是空JSON),我得到null而不是Optional。我当然可以自己初始化字段,但我认为最好有一个null和缺少属性的机制。那么有没有办法让jackson将缺少的属性反序列化为空可选?

2 个答案:

答案 0 :(得分:4)

可选实际上不是用作字段,而是更多用作返回值。为什么没有:

CenterImage

答案 1 :(得分:0)

对于没有getter / setter的解决方案,请确保something初始化为:

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