У меня есть следующий класс:
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())
Есть ли способ сделать это?