我正在尝试将Quarkus与Kotlin一起使用来创建API,但是我遇到了与json-b将json反序列化为我的请求类的方式有关的问题。
我得到的是HashMap,而不是反序列化为MyRequestValue列表。
不确定为什么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)])