Quarkus Resteasy JSON-B десериализует списки в HashMap вместо List <MyObject> - PullRequest
2 голосов
/ 21 мая 2019

Я пытаюсь использовать 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 схэш-карта в качестве значений вместо получения объекта MyRequest со списком.

Фактический результат toString: MyRequest(name=Request, values=[{id=1, value=value1}])

Ожидаемый результат toString: MyRequest(name=Request, values=[MyRequestValue(id=1, name=value1)])

...