Вы должны получить структуру:
<someTypes class="list-type">
<someType>
....
</someType>
...
</someTypes>
Посмотрите на следующий код.Для вашего списка вам нужно пометить:
@XStreamImplicit(itemFieldName="someType")
List<someType>List;
Теперь, в зависимости от того, что вы получили внутри, вам может понадобиться создать собственный конвертер.Чтобы сослаться на это, вы немного изменились следующим образом:
@XStreamImplicit(itemFieldName="someType") @XStreamConverter(YourOwnConverter.class)
List<SomeType> someTypeList;
Затем создайте класс конвертера (YourOwnConverter
), который будет знать, как разархивировать / маршал:
public boolean canConvert(Class type)
{
return type.equals(SomeType.class);
}
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context)
{
SomeType mytype = (SomeType) source;
writer.addAttribute("position", mytype.getPosition());
writer.setValue(mytype.getId());
}
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context)
{
SomeType mytype = new SomeType();
String position = reader.getAttribute("position");
......
return mytype ;
}
Используйте этокак пример: http://x -stream.github.io / converter-tutorial.html