Daten im Jason-Format in eine Datei schreiben.
Es existieren mehrere Möglichkeiten, um in Java mit Json zu
arbeiten. Das hier gezeigte Beispiel bedient sich des Paketes javax.json
.
Das Paket gehört nicht zum Standardumfang des SDK sondern muss
gesondert heruntergeladen und in den Classpath
des Projektes eingebunden werden. Der Download kann z.B. unter
http://repo1.maven.org/maven2/org/glassfish/javax.json/1.1.2/javax.json-1.1.2.jar
erfolgen.
Im Beispiel wird als erstes ein JasonObjectBuilder
-Objekt
erzeugt, dem in der Folge zunächst drei Einträge
hinzugefügt werden. Die Einträge bestehen aus jeweils
zwei Werten, einem Schlüssel als String und einem Wert, der
bei den ersten beiden Einträgen ebenfalls ein String und beim
dritten ein Integer ist.
Im darauf folgenden Quelltextbereich
wird deutlich, wie ein Array erzeugt und dies dann ebenfalls dem
Builder hinzugefügt werden kann.
Hier muss zunächst
ein Objekt vom Typ JsonArrayBuilder
erzeugt werden.
Pro Eintrag wird nun wiederum ein JsonObjectBuilder
erzeugt, dem die Daten hinzugefügt werden und der
anschließend dem JsonArrayBuilder
angefügt
wird. Das JasonArrayBuilder
-Objekt wird
schließlich in das oberste JasonObjectBuilder
-Objekt
eingefügt.
Bevor das JsonObject
über die
Methode build()
erstellt wird, wird noch demonstriert,
dass auch boolsche Werte abgelegt werden können.
import java.io.FileWriter;
import java.io.IOException;
import javax.json.Json;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonWriter;
public class WriteJson {
public static void main(String[] args) {
JsonObjectBuilder builder = Json.createObjectBuilder();
builder.add("vorname", "Paul");
builder.add("nachname", "Schmitz");
builder.add("alter", 14);
JsonArrayBuilder arrb = Json.createArrayBuilder();
JsonObjectBuilder job = Json.createObjectBuilder();
job.add("stil", "rock");
job.add("band", "U2");
arrb.add(job);
job = Json.createObjectBuilder();
job.add("stil", "metal");
job.add("band", "Black Sabbath");
arrb.add(job);
builder.add("musik", arrb);
builder.add("hungrig", true);
JsonObject jo = builder.build();
try {
FileWriter fw = new FileWriter("test.txt");
JsonWriter jsonWriter = Json.createWriter(fw);
jsonWriter.writeObject(jo);
jsonWriter.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Das Speichern in einer Datei erfolgt mittels eines JsonWriter
,
dem als Parameter ein FileWriter
mitgegeben wird.
Beide Writer müssen nach getaner Arbeit natürlich
geschlossen werden.
Die in der Datei gespeicherten Daten erscheinen anschließend in der folgenden Form:
{"vorname":"Paul","nachname":"Schmitz","alter":14,"musik":[{"stil":"rock","band":"U2"},{"stil":"metal","band":"Black Sabbath"}],"hungrig":true}
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.