Парсинг xml с помощью Jackson

226
28 июля 2017, 00:43

Есть задача и ее надо строго выполнить с помощью Jackson для Java. Имеется List<> содержащий объекты, которые имеют свои поля. Имя, id. Нужно с помощью библиотеки Jackson запарсить все объекты коллекции в xml и потом распарсить обратно. Временное хранилище такое. На просторах интернета находил примеры для .json файлов. Как понимаю, мы создаем ObjectManager и дальше форичем делаем так :

for (Contact contact : dataStorage.getContacts()) {
    mapper.writeValue(new FileOutputStream(System.getProperty("user.dir") + File.separator + "temp.json"), contact);
    System.out.println(mapper.writeValueAsString(contact));
}

Как можно поменять такой код для парсинга в xml файл? Использовал вот такой артефакт jackson-mapper-asl для maven. Вероятно, что понадобится что-то другое.

Answer 1

Имеется List<> содержащий объекты, которые имеют свои поля. Имя, id

Смею предположить, что класс, описывающий этот обьект имеет вид:

@JacksonXmlRootElement(localName="users") // <- добавляем аннотацию
public class User {
    private String name;
    private String id;
    //getters and setters
}

Затем маппим его с помощью XmlMapper от Jackson

Конвертируем Objects -> Xml

List<Users> users = loadUsers();
XmlMapper mapper = new XmlMapper();
String xml = mapper.writeValueAsString(users);

Обратно:

XmlMapper mapper = new XmlMapper();
Groups groups = mapper.readValue(xml, new TypeReference<List<User>>());
READ ALSO
SharedPreferences.открытие Activity после Login и Logout

SharedPreferences.открытие Activity после Login и Logout

Есть MainActivity с логин формой, кнопка с таким кодом и переходом в следующее окно

238
Проверка ссылки

Проверка ссылки

Как проверить ссылку является ли она изображением или zip или exe файлом? Пытался через getContentType()Но что то не получается, результат не правильный

248
Коды ошибок REST

Коды ошибок REST

Создано приложение на spring bootЕсть класс entity с двумя полями

293
Android (оплата товара)

Android (оплата товара)

ЗдравствуйтеМоя цель: создать интернет-магазин android, но после нескольких запросов в гугл а так и не добился успеха

185