2010-10-14 31 views
1

Lors de l'utilisation de XStream, je reçois une balise vide (sur le champ de collection) si j'essaie de sérialiser un objet ayant la collection java.util.List qui est vide. Comment puis-je supprimer cette balise vide dans la sortie XML?Balise vide XStream lorsque la liste est vide

Répondre

3

Votre variable de liste doit être null et ne pas contenir une liste vide pour éviter la balise 'vide'.

List list = getList(); 
if(list.isEmpty()) { list = null; } 

// Serialization ... 

EDIT:

Si vous voulez que cela soit fait automatiquement, vous devez créer un convertisseur personnalisé, suivez ce tutoriel: http://x-stream.github.io/converter-tutorial.html

+0

où dois-je mettre la liste à null? – walters

+0

vous devez définir votre liste à null (si vide) avant la sérialisation. mais s'il vous plaît fournir le code si vous voulez une réponse plus utile. –

+0

Bien sûr! Cela fonctionnerait. Mais, cela devient salissant si j'ai une relation parent-enfant et que le parent a une liste d'enfants, et les enfants tiennent aussi une liste d'autres enfants par exemple. Cela implique-t-il que je doive vérifier chaque liste définie pour s'assurer qu'elle est nulle si elle est vide? N'y at-il pas un moyen efficace, car cela peut fonctionner dans un simple graphique d'objets, mais une fois que cela augmente, il peut devenir inefficace. – walters