Десериализовать объект с Джексоном - PullRequest
1 голос
/ 23 апреля 2020

Я хотел бы знать, есть ли в Faster XML Джексон возможность (или любой другой чистый способ) десериализовать JSON таким образом, чтобы, когда у меня был JSON ответ от API, подобный этому:

{"id": "1234", "name": "name1"}

тогда автоматически он будет отображаться на лету в иерархию классов следующим образом:

class Person (
   val sellerId: SellerId,
   val name: String
)

class SellerId (
   val id: String
)

Меня интересует в основном то, как на лету десериализовать из верхнего уровня "id" : Строка для вложенного "sellerid", который является объектом, содержащим этот идентификатор.

1 Ответ

1 голос
/ 24 апреля 2020

Вам необходимо:

  1. определить String аргумент конструктор / фабричный метод для десериализации из String значения для SellerId класса.
  2. Annotate sellerId свойство с com.fasterxml.jackson.annotation.JsonAlias или com.fasterxml.jackson.annotation.JsonProperty аннотациями. Что-то вроде: @JsonProperty("id") val sellerId: SellerId
...