Spezifikation / Library-APIJSON3.0
Jakarta JSON Binding
JSON-B bindet POJOs an JSON und zurück, ähnlich wie Jackson, aber als Jakarta-Standard.
Einordnung
Spezifikation / Library-API
Enterprise-Rolle
Es reduziert Mapping-Code und bleibt portabler innerhalb Jakarta-Runtimes.
Fachliches Verständnis
Es reduziert Mapping-Code und bleibt portabler innerhalb Jakarta-Runtimes. In der Praxis ist wichtig, die Spezifikation nicht mit der konkreten Runtime zu verwechseln. Der Standard beschreibt die portablen APIs, die Implementierung entscheidet über Konfiguration, Performance, Betrieb und Support.
Kernkonzepte
- Automatisches Binding.
- Anpassung mit Annotationen.
- Adapter und Serialisierungsregeln.
Typische Einsatzfälle
- REST DTOs serialisieren.
- Events als JSON darstellen.
- Konfigurierbare Datums-/Namenformate.
Technisches Beispiel
java
public record CustomerDto(String number, String name, LocalDate registeredAt) {}
Jsonb jsonb = JsonbBuilder.create(new JsonbConfig()
.withDateFormat("yyyy-MM-dd", Locale.GERMANY));
String json = jsonb.toJson(new CustomerDto("C-42", "Aydin", LocalDate.now()));
CustomerDto dto = jsonb.fromJson(json, CustomerDto.class);
Architekturregel: Jakarta APIs gehören an Systemgrenzen und Infrastrukturpunkte. Fachentscheidungen bleiben in Application Services und Domain-Modellen testbar und möglichst unabhängig vom Container.
Enterprise-Fallen
- Domain Entities direkt serialisieren.
- Zyklische Objektgraphen.
- Provider-spezifische Features als Standard annehmen.
Legacy-Modernisierung
Alte DTO-Mapper lassen sich teilweise durch JSON-B ersetzen, solange API-Verträge sauber bleiben.
Vertiefung: Review-Fragen für Senior-Entwickler
- Welche Spezifikation ist hier wirklich nötig?
- Welche Runtime-Funktion wird genutzt und ist sie portabel?
- Wo liegt die Transaktionsgrenze?
- Sind API-Verträge, DTOs und Domain-Modelle getrennt?
- Ist der Code ohne Application Server testbar?