2

我正在尝试将 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)])

4

0 回答 0