Arbeit mit JSON in Java: Parsing und Serialisierung für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist JSON und warum wird es in Java benötigt?



JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das für Menschen leicht lesbar und für Programme leicht verarbeitbar ist. In der modernen Java-Entwicklung wird JSON überall verwendet: von Konfigurationsdateien bis hin zu API-Anfragen an Webdienste.



Die Arbeit mit JSON in Java umfasst zwei Hauptaktionen:

  • Serialisierung — Umwandlung eines Java-Objekts in einen JSON-String.
  • Parsing (Deserialisierung) — Umwandlung eines JSON-Strings zurück in ein Java-Objekt.


In dieser Lektion werden wir untersuchen, wie man diese Operationen mit zwei beliebten Bibliotheken durchführt: Jackson und Gson. Die Beispiele eignen sich auch für Anfänger-Entwickler.



Projektvorbereitung und Einbinden der Bibliotheken



Für den Anfang benötigen wir ein Java-Projekt. Wir werden Maven zur Verwaltung der Abhängigkeiten verwenden. Erstellen Sie ein neues Maven-Projekt und fügen Sie die folgenden Abhängigkeiten in die Datei pom.xml ein:



Hinzufügen von Jackson

<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.17.1</version></dependency>


Hinzufügen von Gson

<dependency>    <groupId>com.google.code.gson</groupId>    <artifactId>gson</artifactId>    <version>2.11.0</version></dependency>


Beide Bibliotheken können gleichzeitig in einem Projekt verwendet werden. Nach der Aktualisierung werden die Maven-Abhängigkeiten automatisch heruntergeladen.



Erstellen einer Java-Klasse für das Beispiel



Zur Demonstration erstellen wir eine einfache Klasse User, die wir serialisieren und parsen werden:



public class User {    private String name;    private int age;    private String email;

// Ein leerer Konstruktor ist für die Deserialisierung erforderlich public User() {}

public User(String name, int age, String email) { this.name = name; this.age = age; this.email = email; }

// Getter und Setter (für Jackson erforderlich) public String getName() { return name; } public void setName(String name) { this.name = name; }

public int getAge() { return age; } public void setAge(int age) { this.age = age; }

public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}


Wichtig: Für die korrekte Funktion der Bibliotheken muss die Klasse Folgendes haben:

  • Einen leeren Konstruktor (ohne Argumente).
  • Getter und Setter für alle Felder (für Jackson obligatorisch, für Gson reichen Getter aus).


Serialisierung eines Java-Objekts in JSON



Serialisierung ist der Prozess der Umwandlung eines Objekts in einen String. Betrachten wir beide Ansätze.



Beispiel mit Jackson

import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); User user = new User("Anna", 25, "anna@example.com");

// Serialisierung in einen String String json = mapper.writeValueAsString(user); System.out.println(json); }}


Ergebnis der Ausführung:

{"name":"Anna","age":25,"email":"anna@example.com"}


Beispiel mit Gson

import com.google.gson.Gson;

public class GsonExample { public static void main(String[] args) { Gson gson = new Gson(); User user = new User("Anna", 25, "anna@example.com");

// Serialisierung in einen String String json = gson.toJson(user); System.out.println(json); }}


Das Ergebnis wird identisch sein. Beide Bibliotheken bewältigen die Aufgabe gleichermaßen gut.

Blogs

Buchempfehlungen