Bonjour tout le monde,
J'ai un petit problème que je ne parviens pas à résoudre avec la sérialisation (Serialize - Xstream).
Après mon avoir sérialisé mon objet, j'obtiens ceci :
1 2 3 4 5 6
| <serialisation>
<list>
<int>3</int>
<int>44</int>
</list>
</serialisation> |
Je souhaiterais supprimer la collection list de mon fichier xml et obtenir donc ceci :
1 2 3 4
| <serialisation>
<int>3</int>
<int>44</int>
</serialisation> |
Ceci est faisable avec l'instruction addImplicitCollection().
Exemple :
(source : http://tom.tharrisx.homedns.org/sm3r...-tutorial.html)
xstream.addImplicitCollection(MaClasse.class, "list");
Le problème est que ma List n'est pas dans un autre classe et donc que cette instruction ne fonctionne pas. Je m'explique :
Dans ma classe B :
1 2 3 4 5 6 7 8 9 10 11 12
| private List laList = new ArrayList();
laList.add(3);
laList.add(44);
OutputStreamWriter writer = new OutputStreamWriter(
new FileOutputStream("c:\toto.xml"), "UTF-16");
XStream xstream = new XStream();
ObjectOutputStream outStream = xstream.createObjectOutputStream(writer, "serialisation");
outStream.writeObject(laList);
outStream.close();
writer.close(); |
Le contenu du fichier généré est :
1 2 3 4 5 6 7
|
<serialisation>
<list>
<int>3</int>
<int>44</int>
</list>
</serialisation> |
Dans ce cas-là, ne serait-ce pas possible à la place de la balise <list> une balise <laList> ou bien de pouvoir la supprimer avec une instruction comme addImplicitCollection() ?
Si je déclare cette liste dans une classe C, que dans la classe B j'instancie un objet C et que je passe cet objet à la méthode writeObject() ça va jouer, mais en direct, comme cela, je ne trouve pas de solution pour supprimer la balise <list>.
Qqn pourrait-il m'aider svp ?
Partager