相关疑难解决方法(0)

使用Jackson ObjectMapper和Java 8可选值

我试图使用Jackson将类值写入JSON,其中包含Optional作为字段:

public class Test {
    Optional<String> field = Optional.of("hello, world!");

    public Optional<String> getField() {
        return field;
    }

    public static void main(String[] args) throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(new Test()));
    }
}
Run Code Online (Sandbox Code Playgroud)

执行时,此类生成以下输出:

{"field":{"present":true}}
Run Code Online (Sandbox Code Playgroud)

我理解当前/不存在的字段被包含在内并且可以在读取JSON数据时解决它,但是我无法解决可选的实际内容永远不会写入输出的事实.:(

除了不使用ObjectMapper之外,这里有任何变通方法吗?

java jackson java-8

50
推荐指数
5
解决办法
4万
查看次数

标签 统计

jackson ×1

java ×1

java-8 ×1