Arbeiten mit JSON in Java: Parsen und Serialisierung
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das in modernen Webanwendungen, APIs und Microservices weit verbreitet ist. In Java ist die Arbeit mit JSON ein integraler Bestandteil der Entwicklung geworden, sei es beim Parsen von Serverantworten, Serialisieren von Objekten zur Speicherung oder beim Übertragen von Daten zwischen Systemkomponenten. In diesem Artikel werden wir gründlich untersuchen, wie man JSON-Parsing und Serialisierung in Java mit zwei beliebten Bibliotheken durchführt: Gson von Google und Jackson.
1. Was ist JSON und warum wird es in Java benötigt?
JSON ist ein Textformat, das auf Schlüssel-Wert-Paaren und geordneten Listen basiert. Es ist sowohl für Menschen als auch für Maschinen leicht lesbar, was es ideal für die Datenübertragung zwischen einem Server und einem Client macht. In Java wird JSON verwendet für:
- Datenaustausch über REST-API (z. B. Empfangen von Daten von einem Server oder Absenden eines Formulars).
- Konfigurationsdateien — viele Frameworks verwenden JSON für die Anwendungskonfiguration.
- Objektserialisierung — Konvertieren von Java-Objekten in einen JSON-String zum Speichern in einer Datei oder Datenbank.
- Deserialisierung — Wiederherstellen von Java-Objekten aus einem JSON-String.
Java hatte bis Version 9 keine eingebaute JSON-Unterstützung (als das Modul java.json eingeführt wurde), daher verwenden Entwickler am häufigsten Drittanbieter-Bibliotheken wie Gson und Jackson. Schauen wir uns beide an.
2. Parsen von JSON mit Gson
Gson ist eine leichte Bibliothek von Google, mit der Sie JSON einfach in Java-Objekte und zurück konvertieren können. Sie ist einfach zu bedienen und erfordert für grundlegende Szenarien keine zusätzlichen Annotationen.
2.1. Installation von Gson
Fügen Sie die Abhängigkeit zu Ihrer pom.xml (Maven) hinzu:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version></dependency>Wenn Sie Gradle verwenden:
implementation 'com.google.code.gson:gson:2.10.1'2.2. Parsen von JSON in ein Java-Objekt (Deserialisierung)
Angenommen, wir haben einen JSON-String mit Benutzerinformationen:
{ "name": "Ivan Petrov", "age": 30, "email": "ivan@example.com"}Erstellen wir eine User-Klasse:
public class User { private String name; private int age; private String email;
// Getter und Setter (erforderlich für Gson) 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; }}Jetzt parsen wir das JSON:
import com.google.gson.Gson;
public class Main { public static void main(String[] args) { String jsonString = "{\\"name\\":\\"Ivan Petrov\\",\\"age\\":30,\\"email\\":\\"ivan@example.com\\"}"; Gson gson = new Gson(); User user = gson.fromJson(jsonString, User.class); System.out.println("Name: " + user.getName()); System.out.println("Alter: " + user.getAge()); }}Ausgabe:
Name: Ivan PetrovAlter: 302.3. Serialisieren eines Java-Objekts zu JSON
Der umgekehrte Prozess — Konvertieren eines Objekts zu JSON:
User user = new User();user.setName("Maria Smirnova");user.setAge(25);user.setEmail("maria@example.com");
Gson gson = new Gson();String json = gson.toJson(user);System.out.println(json);Ergebnis:
{"name":"Maria S