XStream с HashMap <String, String>

103
12

Кто-нибудь может рассказать мне, как сериализовать HashMap с помощью XStream?


private HashMap<String,String> attributes;
attributes = new HashMap<String,String>();
attributes.put("Description","Value");
attributes.put("Description2","Value2");
attributes.put("Description3","Value3");

Мой xml выглядит как


<attributes>
<entry>
<string>Description</string>
<string>value</string>
</entry>
<entry>
<string>Description2</string>
<string>Value2</string>
</entry>
<entry>
<string>Description3</string>
<string>Value3</string>
</entry>
</attributes>

Мне нужен вывод, например


<attributes>
<attr>
<description>Description</description>
<value>Value</value>
</attr>
<attr>
<description>Description2</description>
<value>Value2</value>
</attr>
<attr>
<description>Description3</description>
<value>Value</value>
</attr>
</attributes>

как добиться этого с помощью XStream? Возможно с аннотациями?

спросил(а) 2013-11-04T22:13:00+04:00 7 лет, 11 месяцев назад
1
Решение
129

Если вы используете XStream 1.4.5, у вас есть NamedMapConverter, чтобы делать то, что вы хотите.


Просто зарегистрируйте конвертер, показывающий, как вы хотите упорядочить карту в следующем примере:

XStream xstream = new XStream();
NamedMapConverter namedMapConverter = new NamedMapConverter(xstream.getMapper(),"attr","description",String.class,"value",String.class);
xstream.registerConverter(namedMapConverter);

ответил(а) 2013-11-18T17:17:00+04:00 7 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема