Einführung in die Arbeit mit JSON in Java
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das in modernen Webanwendungen, APIs und Microservices weit verbreitet ist. Trotz seines Namens ist JSON nicht an JavaScript gebunden und wird in Java gut unterstützt. In diesem Artikel werden wir gründlich untersuchen, wie man JSON in Java mit den beliebten Bibliotheken Jackson und Gson parst, serialisiert und deserialisiert.
Die Fähigkeit, mit JSON zu arbeiten, ist eine grundlegende Fähigkeit für einen Java-Entwickler. Ob es um das Lesen von Konfigurationsdateien, die Interaktion mit REST-APIs oder die Datenübertragung zwischen Microservices geht — JSON kommt überall vor. Wir werden uns beide Ansätze ansehen, damit Sie den für Ihr Projekt am besten geeigneten auswählen können.
Hauptbibliotheken für die Arbeit mit JSON in Java
Im Java-Ökosystem gibt es mehrere beliebte Bibliotheken für die Arbeit mit JSON. Zwei davon sind der De-facto-Standard:
- Jackson — die beliebteste Bibliothek, die in Spring Boot enthalten ist. Sie zeichnet sich durch hohe Leistung und umfangreiche Anpassungsmöglichkeiten aus.
- Gson — eine Bibliothek von Google, einfach zu bedienen und leichtgewichtig. Sie ist ideal für kleine Projekte.
Beide Bibliotheken unterstützen den vollständigen Zyklus der Arbeit mit JSON: Serialisierung (Objekt → JSON), Deserialisierung (JSON → Objekt) und Stream-Verarbeitung.
Abhängigkeiten hinzufügen
Um mit den Bibliotheken zu arbeiten, müssen Sie sie zu Ihrem Projekt hinzufügen. Wenn Sie Maven verwenden, fügen Sie die folgenden Abhängigkeiten zur pom.xml hinzu:
<!-- Jackson --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version></dependency>
<!-- Gson --><dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version></dependency>Für Gradle fügen Sie die Zeilen zur build.gradle hinzu:
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'implementation 'com.google.code.gson:gson:2.10.1'Serialisierung von Java-Objekten zu JSON
Serialisierung ist der Prozess der Umwandlung eines Java-Objekts in einen JSON-String. Sehen wir uns beide Ansätze an.
Serialisierung mit Jackson
Jackson verwendet die Klasse ObjectMapper für die Serialisierung. Beispiel:
import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.core.JsonProcessingException;
public class JacksonSerialization { public static void main(String[] args) throws JsonProcessingException { // Create an object for serialization User user = new User("Ivan", "ivan@example.com", 25); // Create ObjectMapper ObjectMapper mapper = new ObjectMapper(); // Serialize to JSON String json = mapper.writeValueAsString(user); System.out.println(json); // Output: {"name":"Ivan","email":"ivan@example.com","age":25} }}
class User { private String name; private String email; private int age; // Constructor, getters and setters public User(String name, String email, int age) { this.name = name; this.email = email; this.age = age; } public String getName() { return name; } public String getEmail() { return email; } public int getAge() { return age; }}Serialisierung mit Gson
Gson verwendet die Klasse Gson mit der Methode toJson():
import com.google.gson.Gson;
public class GsonSerialization { public static void main(String[] args) { User user = new User("Maria", "maria@example.com", 30); Gson gson = n