java Jackson不反序列化Kotlin数据类中的列表字段
我正在用Kotlin构建一个简单的Spring引导服务。我有一个终点
@GetMapping("/summary")
fun getLoginReport(params: SummaryRequest): ResponseEntity<LoginSummaryResponse> {
// not important
}
SummaryRequest
类的定义如下
data class SummaryRequest(
val groupBy: List<SummaryGroupBy>
)
SummaryGroupBy
是一个枚举类。如果我发出一个传递单个groupBy参数(/summary?groupBy=region
)的请求,那么数据类对象将成功构建。但是如果我通过几个groupBy(/summary/groupBy=region,date
),我会得到以下错误:
[Field error in object 'SummaryRequest' on field 'groupBy': rejected value [region,date]; codes [typeMismatch.SummaryRequest.groupBy,typeMismatch.groupBy,typeMismatch.java.util.List,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [SummaryRequest.groupBy,groupBy]; arguments []; default message [groupBy]]; default message [Failed to convert value of type 'java.lang.String[]' to required type 'java.util.List'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [api.domain.SummaryGroupBy] for value 'region,date'; nested exception is java.lang.IllegalArgumentException: No enum constant api.domain.SummaryGroupBy.REGION,DATE]]
但是,有趣的是,如果我将SummaryRequest
更改为一个常规类(如下所示),它就会起作用。所以,我对它为什么不适用于数据类感到困惑
class SummaryRequest {
var groupBy: List<SummaryGroupBy> = ArrayList
}
我有jackson-module-kotlin
作为依赖项。
为什么Jackson不能反序列化数据类中的列表?
有解决办法吗
共 (0) 个答案