[XStream] Désérialiser une collection
Bonjour,
j'arrive bien a serialiser une collection, par contre pour la déserialiser c'est vraiment la galère et google n'a pas fait mon affaire jusqu'a present.
j'ai un useCase simple pour tenter de réussir une déserialisation :
Code:
1 2 3 4 5 6 7 8 9
|
@XStreamAlias("person")
public class Person {
@XStreamAlias("nom")
String nom;
@XStreamAlias("id")
int age;
@XStreamAlias("address")
String address; |
Code:
1 2 3 4 5
|
@XStreamAlias("persons")
public class PersonList {
@XStreamImplicit(itemFieldName = "persons")
private List<Person> list; |
Code:
1 2 3 4 5 6 7 8
|
public static void main(String[] args) {
String xml = "<persons><person><nom>ABC</nom><age>12</age><address>address</address></person><person><nom>XYZ</nom><age>20</age><address>address2</address></person></persons>";
XStream xStream = new XStream();
xStream.processAnnotations(new Class[] { PersonList.class, Person.class });
PersonList persons = (PersonList)xStream.fromXML(xml);
System.out.println(persons.getList().get(0).getAddress()); |
Et j'obtiens l'erreur suivante :
Code:
Element person of type org.mule.application.formationmule.Person is not defined as field in type org.mule.application.formationmule.PersonList
J'ai essayé de pas mal d'autre façon piqué ici et la sur le web mais rien n'a été concluant.