我正在尝试将 Quarkus 与 Kotlin 一起使用来创建 API,但我遇到了与 json-b 将我的 json 反序列化为我的请求类的方式相关的问题。
我没有反序列化为 MyRequestValue 列表,而是得到一个 HashMap。
不知道为什么 json'b 能够正确反序列化对象但不能对对象列表执行相同的操作
请求类
data class MyRequest @JsonbCreator constructor(
@JsonbProperty("name") val name: String,
@JsonbProperty("values") val values: List<MyRequestValue>
)
data class MyRequestValue @JsonbCreator constructor(
@JsonbProperty("id") val id: Int,
@JsonbProperty("value") val value: String
)
请求 Json
{
"name": "Request",
"values": [
{
"id": 1,
"value": "value1"
}
]
}
pom.xml
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jsonb</artifactId>
</dependency>
我没有将 json 请求转换为我的数据类对象,而是使用哈希图作为值获取 MyRequest 对象,而不是使用 List 获取 MyRequest 对象。
实际 toString 结果:
MyRequest(name=Request, values=[{id=1, value=value1}])
预期 toString 结果:
MyRequest(name=Request, values=[MyRequestValue(id=1, name=value1)])