Scala中的Jackson:如何将null的反序列化重写为Option [_]

时间:2016-11-21 23:01:19

标签: java json scala jackson deserialization

当json中的值为Option[Something](而不是字符串null时,使用jackson,如何覆盖从json到"null"的反序列化,但只是null )?

例如,假设我有case class MyType(data: Option[MyType])。对于以下json

{
  "data": null
}

我得到MyType(None),但我想获得MyType(Some(something_else)),或者至少能够在json中Option[_]字段为null时覆盖杰克逊的行为。

我创建了一个自定义反序列化器,例如class MyTypeDeserializer extends JsonDeserializer[MyType],如果data是字符串"null",则可以正常工作。但是,如果它只是null(因为它必须是由于我的要求),它根本不起作用。我覆盖了我的自定义反序列化程序的getNullValue甚至getEmptyValue,它适用于非选项类型,但仍然无济于事。如果我将反序列化为Option[MyType]并且值为null,则杰克逊根本不会调用我的反序列化器...

0 个答案:

没有答案