Kotlin控制器转换有吗?to列出数据类



我在kotlin springboot创建一个控制器时遇到问题,该控制器可以访问Any?BodyRequest

我尝试了a找到的解决方案,并使用filterIsInstance作为列表,至于单个数据,但仍然没有解决的问题

这是我的代码

fun create(@Valid @RequestBody dataRequest: Any?) : ResponseEntity<Response> {
var lsCoa:List<Master> =  listOf();
if (dataRequest is List<*>) {
lsCoa = dataRequest.filterIsInstance<Master>()
println(lsCoa.size) ==> this print 0
}else if(dataRequest != null){
println(2)  
val b:Master = dataRequest as Master ==> this got error java.util.LinkedHashMap cannot be cast to asg.tax.model.Master
if(b != null){
lsCoa = listOf<Master>(b)
}
}
return service.create(lsCoa)
}

这是主数据类

data class Master (
var code:String,
var name:String? = "",
var type:String? = ""
)

这是请求的例子

单数据

{
"code":100005,
"name":"Test",
"type":"Total"
}

这是一个多数据

[
{
"code":100005,
"name":"test 1",
"type":"Total"
},
{
"code":100006,
"name":"test 2",
"type":"Total"
}
]

我是不是错过了什么??

我很乐意得到任何帮助。

问题是Spring不知道应该将输入解析到哪个类中。它查看您的方法签名,并尝试将HTTP请求解析为方法参数。

如果您的方法接受Any?,Spring不知道应该将输入解析到哪个类,所以它只创建列表/映射并将其传递给方法。

有关更多信息,请参阅官方文档。

相关内容

最新更新