Для того чтобы принять ответ в формате XML и сконвертировать его в POJO (Plain Old Java Object) в Java, необходимо использовать такие инструменты как JAXB или Jackson. Давайте рассмотрим каждый из них подробнее.
1. Использование JAXB:
JAXB (Java Architecture for XML Binding) — это стандартная библиотека Java EE, которая позволяет преобразовывать объекты Java в XML и наоборот. Для принятия XML-ответа и конвертации его в POJO с использованием JAXB, выполните следующие шаги:
Шаг 1: Определите структуру ваших POJO-классов. Это могут быть обычные Java-классы с полями, геттерами и сеттерами для соответствующих элементов XML.
Шаг 2: Создайте XSD-схему для вашего XML-ответа. XSD-схема определяет структуру XML-документа и соответствующие типы данных. Можно использовать различные онлайн-инструменты для генерации XSD-схемы на основе существующего XML-примера.
Шаг 3: Сгенерируйте POJO-классы на основе XSD-схемы с помощью утилиты xjc, входящей в состав JDK. Пример команды для генерации классов:
xjc -d outputDir -p com.example.generated xsdFileName.xsd
Где:
- outputDir
- директория, в которую будут сгенерированы классы
- com.example.generated
- пакет Java, в котором будут находиться сгенерированные классы
- xsdFileName.xsd
- путь к файлу XSD-схемы
Шаг 4: Включите зависимости JAXB в ваш проект. Начиная с Java 11, JAXB не включается по умолчанию, поэтому необходимо добавить соответствующие зависимости (например, EclipseLink MOXY).
Шаг 5: В вашем коде Java получите XML-ответ и выполните преобразование в POJO с использованием JAXB:
JAXBContext jaxbContext = JAXBContext.newInstance(YourRootClass.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); YourRootClass pojo = (YourRootClass) unmarshaller.unmarshal(xmlResponse);
Где YourRootClass
- класс, соответствующий корневому элементу XML.
Теперь вы можете работать с объектом pojo
, который содержит данные из XML-ответа в виде POJO.
2. Использование Jackson:
Jackson — это популярная библиотека для работы с JSON в Java, но она также поддерживает преобразование XML в POJO. Для этого можно использовать модуль Jackson XML.
Шаги 1-3 аналогичны JAXB.
Шаг 4: Включите зависимости Jackson и модуль Jackson XML в ваш проект.
Шаг 5: В вашем коде Java получите XML-ответ и выполните преобразование в POJO с использованием Jackson:
ObjectMapper objectMapper = new XmlMapper(); YourRootClass pojo = objectMapper.readValue(xmlResponse, YourRootClass.class);
Где YourRootClass
- класс, соответствующий корневому элементу XML.
Теперь вы можете работать с объектом pojo
, который содержит данные из XML-ответа в виде POJO.
Вышеуказанные методы позволяют принять XML-ответ и сконвертировать его в POJO с помощью JAXB и Jackson. Выбор зависит от ваших предпочтений и требований проекта.