XStream Alias Liste der root-Elemente
Ich möchte in der Lage sein alias root-element in der Liste je nachdem, welche Art von Objekten sind in der Liste enthalten. Zum Beispiel, das ist meine aktuelle Ausgabe:
<list>
<coin>Gold</coin>
<coin>Silver</coin>
<coin>Bronze</coin>
</list>
Und das ist, was ich will, dass es so Aussehen:
<coins>
<coin>Gold</coin>
<coin>Silver</coin>
<coin>Bronze</coin>
</coins>
Kann ich dies auf globaler Ebene, indem Sie sagen: alle Listen sollten als alias für Münzen, aber ich habe eine Menge von verschiedenen Listen und das funktioniert nicht. Irgendwelche Ideen auf, wie dies zu tun? Scheint, wie es sollte einfach sein, aber natürlich ist es das nicht.
EDIT: ich sollte angeben, ich versuche zur Serialisierung von Objekten in xml. Ich bin mit Spring 3 MVC als meine web-framework.
InformationsquelleAutor efleming | 2010-09-29
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lassen Sie uns sagen, Sie haben eine Münze, die Klasse mit einem Typ-Attribut, wie folgt:
Haben, und Sie haben eine Münzen-Klasse, constains eine Liste der Münze:
Achten Sie auf die Anmerkungen. Die Liste ist Implizit, und die Münzen, die Klasse wird dargestellt als "Münzen".
Ist die Ausgabe:
Es ist nicht die gleiche, die Sie gefragt, aber es gibt einen Grund.
Zunächst, eine Münze, die nur ein Attribut, aber wir sind nicht sicher, ob alle Objekte, die Sie zeigen möchten, haben nur ein Attribut zu. So müssen wir sagen, das Objekt-Attribut über die wir sprechen.
Können Sie auch zeigen, die Münze Attribute als XML-Attribute, keine Felder. Wie folgt:
Hier ist die Ausgabe:
Hoffe, es hilft.
#alias("coins", List<Coins>.class)
(pseudo-code).InformationsquelleAutor pablosaraiva
Dies ist keine ideale Lösung, denn es erfordert einen separaten wrapper-Klasse, könnte man aber etwas wie das hier tun:
Und hier ist das hässliche Teil:
Grundsätzlich ist das erzählen Xstream verwenden "Münzen" bei der Umwandlung der CoinResponse, und dann don ' T verwenden Sie einen beliebigen Namen für die Liste selbst.
InformationsquelleAutor Greg Case
InformationsquelleAutor Bujji