JSON-Parsing in Java: Vom Nullpunkt zum funktionierenden Code
\n\nHaben Sie jemals eine JSON-Antwort einer API betrachtet und leichte Panik verspürt? "Wie extrahiere ich name daraus? Und was mache ich mit diesem verschachtelten Objekt?" — bekannte Fragen, oder? Keine Sorge, Sie sind nicht allein. Das Thema "Wie man JSON in Java parst" ist eine der häufigsten Suchanfragen auf Stack Overflow, und heute werden wir diese Frage ein für alle Mal klären.
JSON (JavaScript Object Notation) ist ein standardisiertes Datenaustauschformat. Fast jeder moderne Dienst – vom Wetter bis zu Aktienkursen – liefert Daten im JSON-Format. Es kompetent parsen zu können, ist eine grundlegende Fähigkeit für einen Java-Entwickler. Wir werden keine langweiligen Spezifikationen lesen. Stattdessen nehmen wir drei der beliebtesten Bibliotheken: Gson (Google), Jackson (FasterXML) und das klassische org.json. Sie werden den Unterschied in den Ansätzen sehen und können Ihr Werkzeug auswählen.
\n\nWas werden Sie nach dem Lesen haben? Sie werden in der Lage sein, jedes JSON zu parsen – von einem einfachen String bis zu einer komplexen verschachtelten Struktur mit Arrays. Los geht's!
\n\nVorbereitung: Was wir brauchen
\n\nFür die Beispiele verwenden wir ein einfaches Maven-Projekt. Wenn Sie Maven nicht nutzen – kein Problem, laden Sie einfach die Bibliotheks-JARs manuell herunter. Hier sind die minimalen Abhängigkeiten für pom.xml:
<!-- Gson -->\n<dependency>\n <groupId>com.google.code.gson</groupId>\n <artifactId>gson</artifactId>\n <version>2.10.1</version>\n</dependency>\n\n<!-- Jackson -->\n<dependency>\n <groupId>com.fasterxml.jackson.core</groupId>\n <artifactId>jackson-databind</artifactId>\n <version>2.15.2</version>\n</dependency>\n\n<!-- org.json (simple) -->\n<dependency>\n <groupId>org.json</groupId>\n <artifactId>json</artifactId>\n <version>20231013</version>\n</dependency>\n\n\nStellen wir uns nun vor, wir haben das folgende JSON vom Server erhalten (Benutzerinformationen):
\n\n{\n "id": 42,\n "name": "Alice",\n "email": "alice@example.com",\n "isActive": true,\n "address": {\n "city": "Moscow",\n "street": "Tverskaya"\n },\n "hobbies": ["reading", "programming", "cycling"]\n}\n\n\nUnsere Aufgabe ist es, diesen String in Java-Objekte umzuwandeln und die notwendigen Felder zu extrahieren. Gehen wir der Reihe nach vor.
\n\nMethode 1: JSON-Parsing in Java mit Gson (Einfach und Elegant)
\n\nGson von Google ist vielleicht der einfachste Weg, JSON in Java zu parsen. Sein Hauptvorteil ist der Minimalismus. Sie müssen nicht viel Code schreiben.
\n\nSchritt 1. Erstellen Sie eine Java-Klasse (POJO), die der JSON-Struktur entspricht.
\n\npublic class User {\n private int id;\n private String name;\n private String email;\n private boolean isActive;\n private Address address;\n private List<String> hobbies;\n\n // Getter und Setter (zwingend erforderlich für Gson!)\n public int getId() { return id; }\n public void setId(int id) { this.id = id; }\n\n public String getName() { return name; }\n public void setName(String name) { this.name = name; }\n\n // ... restliche Getter/Setter analog\n}\n\npublic class Address {\n private String city;\n private String street;\n // getter/setter\n}\n\n\nSchritt 2. Parsen Sie JSON mit einer einzigen Codezeile.
\n\nimport com.google.gson.Gson;\n\npublic class GsonExample {\n public static void main(String[] args) {\n String json = "{\\"id\\":42,\\"name\\":\\"Alice\\",\\"email\\":\\"alice@example.com\\",\\"isActive\\":true,\\"address\\":{\\"city\\":\\"Moscow\\",\\"street\\":\\"Tverskaya\\"},\\"hobbies\\":[\\"reading\\",\\"programming\\",\\"cycling\\"]}";\n\n Gson gson = new Gson();\n User user = gson.fromJson(json, User.class);\n\n System.out.print