jackson jdk版本对应关系_将Jackson ObjectMapper与Java 8可选值一起使用

将Jackson ObjectMapper与Java 8可选值一起使用

我正在尝试使用Jackson将具有Optional作为字段的类值写入JSON:

public class Test {

Optional field = Optional.of("hello, world!");

public Optional 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以外,这里是否有其他解决方法?

asieira asked 2020-01-29T13:58:32Z

7个解决方案

57 votes

您可以使用jackson-datatype-jdk8,其描述为:

支持新的特定于JDK8的类型,例如Optional

为此:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值