Java JSON Decode – Tutorial
Posted: Dezember 4th, 2013 | Filed under: Java, Programmieren | Tags: Java, JAVA JSON lesen, JAVA read JSON, JSON, JSON decode | 9 Comments »Da sich JSON aus meiner Sicht immer mehr gegenüber dem Klassiker XML durchsetzt und ich mittlerweile auch die Verwendung einer JSON-Datei gegenüber einer gängigen “Property-Datei” (*.ini) bevorzuge, hier ein kleines Tutorial mit Hilfe ihr von Googles JSON-Bibliothek gson Json-Dateien einlesen bzw. erzeugen könnt.
GSON Bibliothek herunterladen und einbinden
Zu allererst müsst ihr die Java-Bibliothek gson herunterladen: https://code.google.com/p/google-gson/downloads/list und entpacken. Für die Verwendung benötigt ihr lediglich die Datei gson-X.X.X.jar.
Falls ihr eclipse als IDE eurer Wahl verwendet, könnt ihr hier nachlesen wie ihr diese genau einbindet (unter dem Abschnitt “Bibliothek ins Projekt importieren”).
JSON-Datei lesen
Als Beispiel verwende ich folgende, relativ simple JSON-Datei, welche dennoch alle wichtigen Strukturen wie Array oder Objekt beinhaltet.
personen.json
"personen" : [
{
"name" : "Frank",
"alter" : 27,
"hobbys" : [
{
"name" : "Karlsruher SC"
},
{
"name" : "Computer spielen"
}
]
},
{
"name" : "Peter",
"alter" : 21,
"hobbys" : [
{
"name" : "Tennis"
},
{
"name" : "Boxen"
}
]
}
]
}
Prinzipiell kann man JSON-Dateien mit Hilfe zwei verschiedener Vorgehensweise auslesen. Entweder direkt über ein vorhandenes Java-Objekt, oder allgemein über das sogenannte JsonObject. In diesem Beispiel verwende ich den Weg über das JsonObject.
GsonExample.java
import java.io.BufferedReader; |
Konsolenausgabe
27
Karlsruher SC
Computer spielen
——
Peter
21
Tennis
Boxen
——
Ich hoffe ich konnte dem ein oder anderen damit helfen. Wie ihr ein vorhandenes Java-Objekt inklusive der vollständigen Daten-Struktur in eine JSON-Datei umwandelt und wieder einliest zeige ich euch das nächste mal.
Hey,
ich habe mein Json Array als String vorliegen, wie mache ich das dann?
Hallo Sam,
einfach einen String übergeben anstatt den Buffered Reader. Die Methode fromJson frisst ziemlich viel, siehe API:
http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html
[…] Implementierung benötigt. Wie ihr die Bibliothek in euer Projekt einbinden könnt erfahrt ihr hier […]
GENAU das habe ich gesucht! danke für das tutorial 🙂
Genau dieses umtändliche Handling braucht man mit gson nicht mehr. Mit gson ist es nämlich möglich direkt ein List zurückzuzugeben. Das würde den produktiven Code doch sehr stark vereinfachen.
Ich möchte keine Datei auslesen, sondern von einer Website, was muss ich dann machen?
Hallo,
ich habe genau deinen Code und die JSON übernommen aber ich erhalte als Fehlermeldung:
Exception in thread „main“ com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 1 column 2
at com.google.gson.Gson.fromJson(Gson.java:818)
at com.google.gson.Gson.fromJson(Gson.java:741)
at kalman.kalman.main(kalman.java:25)
Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 1 column 2
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:502)
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:403)
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:666)
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:642)
at com.google.gson.Gson.fromJson(Gson.java:803)
… 2 more
Woran kann das liegen?
VG Bea
I see your blog needs some fresh & unique content.
Writing manually is time consuming, but there is solution for this hard task.
Just search for; Miftolo’s tools rewriter
[…] I love Gson, it’s very simple and easy to use. If you are interessted in more, here is a tutorial (german): http://blog.mynotiz.de/programmieren/java-json-decode-tutorial-2074/ […]