将 Jackson ObjectMapper 与 Java 8 Optional 值一起使用
我试图使用Jackson将类值写入JSON,该值具有可选字段:
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()));
}
}
执行时,此类将生成以下输出:
{"field":{"present":true}}
我理解包含当前/不存在的字段,并且可以在读取JSON数据时解决此问题,但是我无法摆脱这样一个事实,即可选内容的实际内容永远不会写入输出。:(
除了根本不使用ObjectMapper之外,这里有什么解决方法吗?