我有以下 Kotlin 数据类:
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"
)
Run Code Online (Sandbox Code Playgroud)
然后,我尝试使用 Jackson v2.9.4 和 Jackson Kotlin 插件 v2.9.4.1 将一些 JSON 反序列化到此类中。测试JSON如下:
{
"boolField": true,
"stringField": "string",
"nullBoolField": null,
"nullStringField": null
}
Run Code Online (Sandbox Code Playgroud)
前两个和最后两个字段成功反序列化 - 根据需要使用 JSON 中的值和 Kotlin 数据类中的默认值。但是,当存在中间一对字段时,反序列化失败并显示:
JSON 属性 nullStringField 的 [simple type, class com.example.TestObject] 值实例化失败,因为创建者参数 nullStringField 的值缺失(因此为 NULL),该参数是不可为 null 的类型
我知道我可以nullBoolField
通过分别将和 …