java - 正确反序列化可选可选类型
问题描述
我有以下课程:
class X(
val x: Optional<Optional<Int>>
)
我可以使用以下映射器对其进行序列化:
val mapper = ObjectMapper().registerModule(Jdk8Module())
对此:
mapper.valueToTree(X(Optional.of(Optional.of(1)))) // -> {"x":1}
mapper.valueToTree(X(Optional.of(Optional.empty()))) // -> {"x":null}
mapper.valueToTree(X(Optional.empty())) // -> {}
但可悲的是,它不能以相反的方式工作:
{"x":1} -> X(Optional.of(Optional.of(1)))
{"x":null} -> X(Optional.of(Optional.empty())
{} -> X(Optional.empty())
具体来说,我想{"x":null}
反序列化为X(Optional.of(Optional.empty())
有没有办法做到这一点?
解决方案
推荐阅读
- performance - 如何减少浏览器中的 Three.js CPU/GPU 使用率
- node.js - 使用 Nodejs 运行 imageMagick 命令
- google-cloud-platform - gsutil parallel_composite_upload_threshold 的 Google Cloud JAVA SDK 替代品
- mysql - SQL 更新突然不起作用
- mysql - 从 Rails 中的 4 个连接表中获取数据
- swift - 无法使用有界流对执行流式请求
- android - Android OS 如何识别主线程上的网络调用并抛出 NetworkOnMainThreadException
- android - 我如何在 viewPager 上添加向上/向下滑动检测?
- firefox-developer-tools - 无法在 Firefox 开发人员工具中打开网络选项卡
- javascript - 如何在php中添加编辑按钮