Десериализация Джексона по наследованию - PullRequest
0 голосов
/ 26 мая 2020

У меня есть класс со следующей структурой

Class A { private String type; private T entity; }

И моя JSON структура выглядит так

{"type":"Relation1","entity":"{..}"} --> entity should be Relation1.class
{"type":"Relation2","entity":"{..}"}  --> entity should be Relation2.class

Как я могу достичь желаемого результат использования десерилизатона Джексона?

1 Ответ

0 голосов
/ 27 мая 2020

Если вы используете наследование в своей модели, вы не можете получить чистый json, как показано, потому что Джексон не смог десериализовать json. Если вы хотите использовать Jackson, вам необходимо настроить ObjectMapper:

ObjectMapper mapper = new ObjectMapper();
mapper.enableDefaultTyping();

И тогда вы получите Json, который включает имя класса T, необходимое для процесса десериализации.

Здесь вы найдете полное руководство: Руководство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...