Input/Output JAXB XML Output von Objekt-Listen?

membersound

Bekanntes Mitglied
Hallo.

Ich Versuche eine Liste von 'Route'-Objekten als XML abzuspeichern.
Wenn ich alle Objekte einzeln aus meiner Liste MyRouteCollection auslese und speicher, dann ist alles ok.

Java:
@XmlRootElement
public class Route {
	private String start, destination;

    public Route() {   
    }   

    public Route(String start, String destination) {   
	this.start = start;
	this.destination = destination;
    }   
	//getter + setter...
}



public class MyRouteCollection {

    private List<Route> routeList;

    public MyRouteCollection() {
    }

    public List<Route> getRouteList() {
        if (routeList == null) {
            routeList = new ArrayList<Route>();
        }
        return routeList;
    }

    public void setRouteList(ArrayList<Route> routeList) {
        this.routeList = routeList;
    }
}





    public void saveFile(MyRouteCollection routeCollect, File file) throws FileNotFoundException {

            JAXBContext context = JAXBContext.newInstance(Route.class);
            Marshaller m = context.createMarshaller();
            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            for (Route route : routeCollect.getRouteList()) {
                m.marshal(route, System.out);
            }
    }

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<route>
    <destination>far far away</destination>
    <start>home</start>

</route>


Wenn ich aber versuche die Liste direkt abzuspeichern, dann bekomme ich eine XML Datei ohne Felder:
(natürlich @XmlRootElement vor MyRouteCollection gesetzt und vor Route entfernt)

Java:
    public void saveFile(MyRouteCollection routeCollect, File file) throws FileNotFoundException {

            JAXBContext context = JAXBContext.newInstance(MyRouteCollection.class);
            Marshaller m = context.createMarshaller();
            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
           
                m.marshal(routeCollect, System.out);
   }

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myRouteCollection/>


Warum kann ich denn die Liste nicht einfach abspeichern?
Bzw was muss ich tun, um die Liste als solche direkt in XML speichern zu können?
(Grundlage: JAXB: Speichern von Java Objekten als XML, demnach soll Listen abspeichern ja gehen).

Danke
 

kay73

Bekanntes Mitglied
...must auch ein
Code:
@XmlElement
deklarieren. So gehts:

Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;


class Route {

	private String start;
	
	private String destination;
	
	public Route() {}
	
	public String getStart() {
		return start;
	}
	public void setStart(String start) {
		this.start = start;
	}
	public String getDestination() {
		return destination;
	}
	public void setDestination(String destination) {
		this.destination = destination;
	}
	public Route(String start, String destination) {
		super();
		this.start = start;
		this.destination = destination;
	}
}

@XmlRootElement
class MyRouteCollection {
	 
	@XmlElement
    private List<Route> routeList = new ArrayList<Route>();
 
    public MyRouteCollection() {
    	
    }
    
    public MyRouteCollection(Route ... r) {
    	routeList.addAll(Arrays.asList(r));
    }
 
    public List<Route> getRouteList() {        
        return routeList;
    }
 
    public void setRouteList(ArrayList<Route> routeList) {
        this.routeList = routeList;
    }
}


public class Main {

	public static void main(String[] args) throws JAXBException {
		 JAXBContext context = JAXBContext.newInstance(MyRouteCollection.class);
         Marshaller m = context.createMarshaller();
         m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        
         final MyRouteCollection routeCollect = new MyRouteCollection(new Route("a1", "d1"), new Route("a2", "d2"));
         m.marshal(routeCollect, System.out);
	}
}
Und das kommt raus:[XML]<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myRouteCollection>
<routeList>
<destination>d1</destination>
<start>a1</start>
</routeList>
<routeList>
<destination>d2</destination>
<start>a2</start>
</routeList>
</myRouteCollection>
[/XML]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JaxB - Unique Name updaten / Referenzen in XML Java Basics - Anfänger-Themen 0
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
I JaxB und Klasse "Object" ? Java Basics - Anfänger-Themen 7
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
B JaxB und Interfaces? Java Basics - Anfänger-Themen 2
B JAXB und LocalTime / LocalDate / LocalDateTime Java Basics - Anfänger-Themen 1
I JAXB und Enum Java Basics - Anfänger-Themen 7
D JAXB - flexibles Mappen von Elementen Java Basics - Anfänger-Themen 12
L Input/Output XML Datei einlesen (JAXB?) Java Basics - Anfänger-Themen 10
U JAXB - List wird nicht ausgefüllt Java Basics - Anfänger-Themen 1
U JAXB Unmarshalling Java Basics - Anfänger-Themen 1
G jaxb compiler Java Basics - Anfänger-Themen 2
G JAXB Installation Java Basics - Anfänger-Themen 2
emreiu Formatiertes Output bei Insertion Sort Java Basics - Anfänger-Themen 6
Kotelettklopfer Output korrekt trotz falschem Lösungsweg !? Java Basics - Anfänger-Themen 99
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
B Output Java Basics - Anfänger-Themen 1
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
O Input/Output newbile und keine Ahnung! Java Basics - Anfänger-Themen 16
K output Java Basics - Anfänger-Themen 3
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
E 2 Matrizen multiplizieren - Output fehlt... Java Basics - Anfänger-Themen 5
A Input/Output Prozess Output genauso in der Konsole ausgeben Java Basics - Anfänger-Themen 0
J Input/Output Den zweiten Output erst nach Eingabe ausgeben Java Basics - Anfänger-Themen 4
A Erste Schritte Java Output wird nicht angezeigt Java Basics - Anfänger-Themen 7
GoldenShadow Input/Output Verschiedene Versionen von Input/Output Java Basics - Anfänger-Themen 3
K cmd output.txt Java Basics - Anfänger-Themen 5
T Output in CMD anzeigen lassen? Java Basics - Anfänger-Themen 1
D Runtime exec output wiedergeben Java Basics - Anfänger-Themen 1
B Input/Output output Datenstrom filtern Java Basics - Anfänger-Themen 0
J Möchte gern den Konsolen Output auf JTextPane umleiten Java Basics - Anfänger-Themen 4
fLooojava Output in einer Textarea einfärben Java Basics - Anfänger-Themen 7
fLooojava OOP Übergabe/Output in Textfield Java Basics - Anfänger-Themen 4
E Input/Output convert string to two dimensional char and output = matrix Java Basics - Anfänger-Themen 2
S Output Problem Java Basics - Anfänger-Themen 2
O OOP Input & Output in der GUI-Programmierung Java Basics - Anfänger-Themen 2
C Input & Output Frage Java Basics - Anfänger-Themen 4
E Input & Output Problem Java Basics - Anfänger-Themen 7
F Input/Output Falsches Output in Datei! Java Basics - Anfänger-Themen 4
G Output aus fremden Klasse auswerten Java Basics - Anfänger-Themen 8
C Input/Output Dynamischer Output von Arrays Java Basics - Anfänger-Themen 3
P Windows vs. Ubuntu verschiedener Output Java Basics - Anfänger-Themen 31
L Output mit zwei ungleichen Strings Java Basics - Anfänger-Themen 17
B In- und Output von XML-Daten in und aus einem Objekt Java Basics - Anfänger-Themen 6
S Compiler-Fehler see the compiler error output Java Basics - Anfänger-Themen 6
S Input/Output Data-Input/Output-Stream Java Basics - Anfänger-Themen 2
B Threads Methoden mit Output in Threads verpacken Java Basics - Anfänger-Themen 4
A Input/Output Taskmanager Output Java Basics - Anfänger-Themen 2
T Objekt Output zu String Array Java Basics - Anfänger-Themen 4
M Output Input im Cmd Fenster Java Basics - Anfänger-Themen 7
T Output in File funktioniert nicht Java Basics - Anfänger-Themen 3
B Limit console output in Eclipse Java Basics - Anfänger-Themen 6
T Java Output File Gliedern Java Basics - Anfänger-Themen 5
P Output einer anderen Anwendung verwenden Java Basics - Anfänger-Themen 7
D Input Output Java Basics - Anfänger-Themen 8
N Verschiedene Input/Output Klassen Java Basics - Anfänger-Themen 3
L StdIn Stdout / Input Output Aufgabe Java Basics - Anfänger-Themen 3
G Output Fehler. Java Basics - Anfänger-Themen 20
M Input/Output Stream aus einem String Java Basics - Anfänger-Themen 2
J IO Frage Hex-Output - Anfängerfrage Java Basics - Anfänger-Themen 5
M Datei Output als Append Java Basics - Anfänger-Themen 3
B Output window grabben? Java Basics - Anfänger-Themen 3
S printable ASCII output erzeugen Java Basics - Anfänger-Themen 3
J File Input/Output und Applet Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
melaniemueller Fernseher als Objekt Java Basics - Anfänger-Themen 9
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
S Aufzurufendes Objekt Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben