我想将简单的json反序列化为TestEntity
:
data class TestEntity (
val id: Long,
val objType: String?
)
这是一个json,其中id
属性有意丢失:
val json = """{
"objType":"type"
}""".trimMargin()
我正在尝试使用以下方法反序列化:
val mapper = ObjectMapper().registerKotlinModule()
.enable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES)
val object = mapper.readValue(json, TestEntity::class.java)
因为我使用了FAIL_ON_NULL_FOR_PRIMITIVES
功能并注册了kotlin模块,所以我期望MissingKotlinParameterException
出现,但是我得到了:
com.fasterxml.jackson.databind.exc.MismatchedInputException:缺少必需的创建者属性“ id”(索引0)
我注意到MismatchedInputException
仅对基本类型抛出。如果我使用一些自定义对象,但在json中错过了它,则会得到MissingKotlinParameterException
。
所以我的问题是否有可能像我的示例中那样用基本类型捕获MissingKotlinParameterException
?有什么解决方法吗?
版本:jackson-databind v2.9.7
和jackson-module-kotlin v2.9.7