Hallo Freunde der Sonne,
ich muss für die Arbeit ein JSON-File exportieren. Verstehe soweit die Funktionen die JAVA dazu anbieten, inhaltlich ist das generierte File scheinbar auch korrekt. Nur mit der Formattierung bekomme ich es nicht ganz so hin wie es sein soll.
Mein Code sieht so in der Richtung aus:
Wenn ich die Datei dann öffne sieht das ganze so aus:
Folgende Dinge stöhren mich:
Zum einen sind die Attribute nicht in der Reihenfolge vorhanden in der ich sie im Code hinzufüge. Ich bräuchte das wirklich in der Korrekten Reihenfolge, also in diesem Fall 1) vorname, 2) nachname, 3) adresse, 4) fremdsprachen
Weiterhin ist stöhrend, dass alles in derselben Zeile ist. Es müsste jedes mal wenn ein neues Objekt/eine neue Liste/ein neues Attribut kommt ein Zeilenumbruch stattfinden. Am besten auch mit einrückung, so dass gleichwertige Objekte auf derselben Höhe sind. So soll das ganze idealerweise aussehen:
Ich würde mich freuen, wenn mir jemand helfen kann. Bedanke mich auch recht herzlich im Vorraus.
Liebe Grüße, Andy
ich muss für die Arbeit ein JSON-File exportieren. Verstehe soweit die Funktionen die JAVA dazu anbieten, inhaltlich ist das generierte File scheinbar auch korrekt. Nur mit der Formattierung bekomme ich es nicht ganz so hin wie es sein soll.
Mein Code sieht so in der Richtung aus:
Code:
import java.io.FileWriter;
import java.io.IOException;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
class Experimente {
public static void main(String[] args) {
try {
JSONArray Personenliste = new JSONArray();
JSONObject person1 = new JSONObject();
person1.put("vorname","Roman");
person1.put("nachname","Tisch");
person1.put("adresse", "Sackgasse 1, Musterhausen");
JSONObject sprachen1 = new JSONObject();
sprachen1.put("Fremdsprache 1","English");
sprachen1.put("Fremdsprache 2","Spanisch");
person1.put("fremdsprachen",sprachen1);
JSONObject person2 = new JSONObject();
person2.put("vorname","Sergej");
person2.put("nachname","Fährlich");
person2.put("adresse", "Musterstraße 1, Boring");
JSONObject sprachen2 = new JSONObject();
sprachen2.put("Fremdsprache 1","English");
sprachen2.put("Fremdsprache 2","Russisch");
person2.put("fremdsprachen",sprachen2);
Personenliste.put(person1);
Personenliste.put(person2);
JSONObject endErgebnis = new JSONObject();
endErgebnis.put("Personenliste", Personenliste);
String speicherort = "C:\\Users\\QXX7806\\Personenliste.json";
try (FileWriter file = new FileWriter(speicherort)) {
file.write(endErgebnis.toString());
file.flush();
} catch (IOException e) {
e.printStackTrace();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Wenn ich die Datei dann öffne sieht das ganze so aus:
{"Personenliste":[{"fremdsprachen":{"Fremdsprache 2":"Spanisch","Fremdsprache 1":"English"},"vorname":"Roman","adresse":"Sackgasse 1, Musterhausen","nachname":"Tisch"},{"fremdsprachen":{"Fremdsprache 2":"Russisch","Fremdsprache 1":"English"},"vorname":"Sergej","adresse":"Musterstraße 1, Boring","nachname":"Fährlich"}]}
Folgende Dinge stöhren mich:
Zum einen sind die Attribute nicht in der Reihenfolge vorhanden in der ich sie im Code hinzufüge. Ich bräuchte das wirklich in der Korrekten Reihenfolge, also in diesem Fall 1) vorname, 2) nachname, 3) adresse, 4) fremdsprachen
Weiterhin ist stöhrend, dass alles in derselben Zeile ist. Es müsste jedes mal wenn ein neues Objekt/eine neue Liste/ein neues Attribut kommt ein Zeilenumbruch stattfinden. Am besten auch mit einrückung, so dass gleichwertige Objekte auf derselben Höhe sind. So soll das ganze idealerweise aussehen:
{
"Personenliste":[
{
"vorname":"Roman",
"nachname":"Tisch",
"adresse":"Sackgasse 1, Musterhausen",
"fremdsprachen":{
"Fremdsprache 1":"English",
"Fremdsprache 2":"Spanisch"
},
},
{
"vorname":"Sergej",
"nachname":"Fährlich",
"adresse":"Musterstraße 1, Boring",
"fremdsprachen":{
"Fremdsprache 1":"English",
"Fremdsprache 2":"Russisch"
}
}
]
}
Ich würde mich freuen, wenn mir jemand helfen kann. Bedanke mich auch recht herzlich im Vorraus.
Liebe Grüße, Andy