JSON-Verarbeitung in Java: Bibliotheken und Werkzeuge für die Arbeit mit JSON

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

JSON-Verarbeitung in Java: Überblick über Bibliotheken und Werkzeuge



JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das in modernen Webanwendungen, REST-APIs, Konfigurationsdateien und Datenbanken weit verbreitet ist. In Java gibt es mehrere leistungsstarke Bibliotheken für die Arbeit mit JSON, jede mit ihren eigenen Besonderheiten, Leistungsmerkmalen und Benutzerfreundlichkeit. In diesem Artikel betrachten wir die wichtigsten Werkzeuge, ihre Funktionen, Codebeispiele und Best Practices.



1. Jackson (FasterXML Jackson)

Jackson ist die beliebteste und leistungsfähigste Bibliothek für die Arbeit mit JSON in Java. Sie unterstützt sowohl die Stream-Verarbeitung (SAX-ähnlicher Stil) als auch das Objektmodell (DOM-Stil). Jackson ist Bestandteil von Spring Boot und vielen Enterprise-Anwendungen.



Hauptfunktionen:

  • Serialisierung/Deserialisierung von Java-Objekten in JSON und zurück
  • Stream-Verarbeitung großer JSON-Dateien (JsonParser, JsonGenerator)
  • Unterstützung von Annotationen für die Feinabstimmung (@JsonProperty, @JsonIgnore, @JsonFormat)
  • Arbeit mit dem Knotenbaum (JsonNode)
  • Unterstützung von JSON Schema und Validierung


Codebeispiel: Grundlegende Verwendung von Jackson

import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.JsonNode;

public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper();

// Serialisierung eines Objekts in JSON Person person = new Person("Ivan", 30, "ivan@example.com"); String json = mapper.writeValueAsString(person); System.out.println(json); // {"name":"Ivan","age":30,"email":"ivan@example.com"}

// Deserialisierung von JSON in ein Objekt String jsonInput = "{\\"name\\":\\"Maria\\",\\"age\\":25}"; Person deserialized = mapper.readValue(jsonInput, Person.class); System.out.println(deserialized.getName()); // Maria

// Arbeit mit dem Knotenbaum JsonNode root = mapper.readTree(jsonInput); System.out.println(root.get("age").asInt()); // 25 }}

class Person { private String name; private int age; private String email;

// Konstruktoren, Getter, Setter (erforderlich für die Deserialisierung) public Person() {} public Person(String name, int age, String email) { this.name = name; this.age = age; this.email = email; } // Getter und Setter...}


2. Gson (Google Gson)

Gson ist eine Bibliothek von Google, die für ihre Einfachheit und Leichtigkeit bekannt ist. Sie eignet sich ideal für kleine und mittlere Projekte, bei denen keine maximale Leistung erforderlich ist. Gson verwendet Reflektion für die automatische Serialisierung/Deserialisierung.



Besonderheiten:

  • Minimale Konfiguration – funktioniert "out of the box"
  • Unterstützung von Annotationen (@Expose, @SerializedName)
  • Möglichkeit zur Erstellung benutzerdefinierter Adapter (JsonSerializer, JsonDeserializer)
  • Arbeit mit Sammlungen, Arrays und verschachtelten Objekten


Codebeispiel: Gson in Aktion

import com.google.gson.Gson;import com.google.gson.GsonBuilder;

public class GsonExample { public static void main(String[] args) { Gson gson = new GsonBuilder() .setPrettyPrinting() // formatierte Ausgabe .create();

// JSON aus einem Objekt erstellen Product product = new Product("Laptop", 899.99, true); String json = gson.toJson(product); System.out.println(json);

// JSON in ein Objekt parsen String jsonInput = "{\\"name\\":\\"Maus\\",\\"price\\":25.5,\\"available\\":false}"; Product parsed = gson.fromJson(jsonInput, Product.class); System.out.println(parsed.getName()); // Maus }}

class Product {

Empfehlungen