I have the following Kotlin data class:
data class TestObject(
val boolField: Boolean,
val stringField: String,
val nullBoolField: Boolean = true,
val nullStringField: String = "default",
val notThereBoolField: Boolean = true,
val notThereStringField: String = "not there"
)
我现在正在尝试使用Jackson v2.9.4及其Kotlin插件v2.9.4.1将一些JSON反序列化为该类。测试JSON如下:
{
"boolField": true,
"stringField": "string",
"nullBoolField": null,
"nullStringField": null
}
前两个和后两个字段已经成功反序列化 - 分别使用来自JSON和Kotlin数据类的默认值,具体取决于情况。然而,当中间一对字段存在时,反序列化失败并出现以下错误: “由于缺少(因此为NULL)创建器参数nullStringField的值,而nullStringField是非空类型,因此无法将[simple type,class com.example.TestObject]值实例化为JSON属性nullStringField”。 我知道我可以通过将nullBoolField和nullStringField的类型更改为Boolean?和String?来解决问题,但是由于已知默认值,我宁愿不必通过这样做将null的处理推迟到代码中。 问题是:是否有任何方法可以配置Jackson在JSON中存在但设置为null的非可空属性时使用Kotlin数据类的默认值?