Класс POJO должен присутствовать при преобразовании JSON в POJO?

Я пытаюсь преобразовать JSON в класс POJO. Этот JSON я получаю от стороннего вызова REST API, и я хочу преобразовать его в класс POJO. Для этого я использую банку jackson-databind, и ниже приведена часть моего кода.

 ObjectMapper mapper = new ObjectMapper();
 Object modelObject; // object in which I want to convert my JSON object
 mapper.writeValue(request.getShipmentDataJson(), modelObject);

Здесь пока вместо класса POJO я объявил переменную modelObjcet типа Object, и мой вопрос: нужно ли нам создавать класс POJO с обязательными полями и методами getter setter перед преобразовать JSON в POJO?

Если да, то как мы должны создать этот класс POJO из JSONSchema и когда он будет создан?

Пожалуйста, объясните мне эту концепцию. Насколько я понимаю, мы должны создать POJO непосредственно из JSONSchema, но когда и как это сделать, я не знаю. И я думаю, что после создания POJO я могу использовать приведенный выше код для сохранения объекта JSON в POJO.


person Learner    schedule 29.01.2021    source источник
comment
Обычно вы можете написать класс(ы) POJO вручную, вместо того, чтобы генерировать их автоматически из JSON-схемы. Есть много хороших вводных, например. Введение в Jackson ObjectMapper   -  person Thomas Fritsch    schedule 29.01.2021


Ответы (1)


Вам нужен объект с полями, соответствующими входящему JSON (имена и типы данных), чтобы Джексон мог его заполнить и создать экземпляр. Есть такие инструменты:

http://www.jsonschema2pojo.org/

для генерации java-кода из JSON

person Konstantin Pribluda    schedule 29.01.2021