杰克逊反序列化 - Kotlin数据类 - 每个映射器缺少字段的默认值

时间:2016-09-21 13:59:42

标签: jackson kotlin

鉴于此数据类:

data class MyPojo(val notInJson: Int, val inJson: Int)

假设我想实现以下形式的函数:

fun deserialize(jsonString: String, valueForFieldNotInJson: Int): MyPojo

jsonString不包含名为notInJson的字段。还假设我无法控制MyPojo类定义。

我如何使用杰克逊库从MyPojo反序列化jsonString并从notInJson参数中增加缺失的字段(valueForFieldNotInJson)?

注意:

  • 基本上,问题是关于反序列化Immutable类,其中一些字段来自Json,而其他字段则是在运行时提供的。
  • 使用自定义反序列化器或builders将无效,因为在编译时缺少值是未知的。

1 个答案:

答案 0 :(得分:2)

这可以通过合并MinInAnnotationsValueInjection来实现。

完整解决方案如下:

zipcode