【发布时间】:2019-09-13 11:05:39
【问题描述】:
如果序列化的源(例如 json 对象)不包含该字段,我如何指示 Jackson 不要将 kotlin.Boolean 参数自动反序列化为 false?
查看当前示例:
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
data class Test(
var param1: String,
var param2: Boolean
)
fun main() {
val mapper = jacksonObjectMapper()
// passes, param2 is set to false, why isnt exception thrown?
val test1 = mapper.readValue("{\"param1\": \"bah\"}", Test::class.java)
// throws com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException
val test2 = mapper.readValue("{\"param2\": true}", Test::class.java)
}
在我没有给布尔参数赋值的第一种情况下,如何让杰克逊抱怨异常?
我对此很感兴趣,因为我希望我的 API 在客户端没有为布尔参数提供值时停止并抱怨。我不希望它在发生这种情况时简单地设置为 false。
谢谢!
【问题讨论】:
标签: kotlin jackson json-deserialization