Шаг 134.
Язык программирования Java.
Библиотека JAXB. Десериализация сложных объектов

На этом шаге мы рассмотрим десериализацию сложных объектов

На подобие с предыдущим шагом, приведем пример для десериализация объектов Cat. Файлы Cat.java и Zoo.java идентичны файлам с предыдущего шага.

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.File;

public class Main {

    public static void main(String[] args) throws JAXBException {

        File inFile = new File("cats.xml");

        // Создаем Unmarshaller
        Unmarshaller unmarshaller = getUnMarshaller(Zoo.class, Cat.class);

        // Десериализуем
        Zoo zoo = (Zoo) unmarshaller.unmarshal(inFile);

        // Выводим результат
        System.out.println("десериализация завершена");
        for (Cat cat : zoo.getPets()) {
            System.out.println("name = " + cat.getName() + ", age = " + cat.getAge());
        }
    }

    /**
     * Функция для создания Unmarshaller.
     *
     * @param classes Список классов, которые участвуют в десериализации
     * @return Unmarshaller
     */
    private static Unmarshaller getUnMarshaller(Class... classes) throws JAXBException {
        JAXBContext context = JAXBContext.newInstance(classes);
        Unmarshaller unmarshaller = context.createUnmarshaller();
        return unmarshaller;
    }
}

Проект можно взять здесь


Рис. 1. Вывод программы

Как видно из примера, десериализация оказалась ничем не сложнее сериализации.

На следующем шаге мы начнем рассматривать библиотеку Gson

Предыдущий шаг Содержание Следующий шаг