Scala 在Jackson中使用计算的默认值而不是null

Scala 在Jackson中使用计算的默认值而不是null,scala,jackson,default-value,Scala,Jackson,Default Value,我用的是杰克逊2.1.3。 我的目标是在从JSON反序列化bean时为字段使用一些默认值。具体地说,我是在Scala上编写的,所以我希望反序列化程序使用字段的默认值,前提是字段不是在JSON中指定的,而是在Scala类的构造函数中指定的默认值。 我可以在运行时检索已知构造函数和索引的默认值或缺少参数的名称,但我找不到在bean反序列化器中使用该值的方法 我知道,这个问题是在Jerkson中解决的,但首先我不能使用它,因为它不在Scala 2.10上运行,其次他们通过使用自己的案例类反序列化程序而

我用的是杰克逊2.1.3。 我的目标是在从JSON反序列化bean时为字段使用一些默认值。具体地说,我是在Scala上编写的,所以我希望反序列化程序使用字段的默认值,前提是字段不是在JSON中指定的,而是在Scala类的构造函数中指定的默认值。 我可以在运行时检索已知构造函数和索引的默认值或缺少参数的名称,但我找不到在bean反序列化器中使用该值的方法

我知道,这个问题是在Jerkson中解决的,但首先我不能使用它,因为它不在Scala 2.10上运行,其次他们通过使用自己的案例类反序列化程序而不是Jacksons的BeanDeserializer来解决它-所以他们失去了一些基本的Jackson特性

我尝试将AnnotationIntroSector与已定义的“findDeserializer”方法一起使用。我用自定义的“getNullValue”扩展了DelegatingDeserializer,但被委派者有一个问题——我没有找到在“findDeserializer”方法上下文中获得好的反序列化程序的方法,同时也丢失了一些类型信息

然后我花了很多时间阅读Jackson的源代码,我没有找到任何方法来为bean反序列化上的字段提供默认值,而不在少数字段上复制粘贴Jackson库的一半,并使用弱化访问修饰符