In diesem Artikel
Warum Java-Klassen aus JSON generieren
Die ausführliche Klassensyntax von Java macht das Schreiben von POJOs für die JSON-Deserialisierung zu einer der mühsamsten Aufgaben in der Backend-Entwicklung. Eine einzige API-Antwort mit verschachtelten Objekten kann Dutzende von Zeilen an Gettern, Settern und Konstruktoren erfordern. Unser JSON-zu-Java-Konverter beseitigt diesen Boilerplate-Code, indem er JSON-Strukturen analysiert und produktionsreife Java-Klassen im Handumdrehen erzeugt.
Ob Sie REST-API-Clients erstellen, Webhook-Payloads verarbeiten oder Drittanbieterdienste anbinden — die Generierung von Java-Klassen aus JSON-Beispieldaten stellt sicher, dass Ihre Modelle zur tatsächlichen Datenstruktur passen. Das reduziert Fehler durch falsche Feldnamen, falsche Typen und fehlende verschachtelte Klassen, die beim manuellen Schreiben von Modellen häufig auftreten.
Ausgabemodi
Der Konverter unterstützt mehrere Java-Klassenstile, passend zu den Anforderungen und der Java-Version Ihres Projekts.
- POJO — klassisches Plain Old Java Object mit privaten Feldern, Gettern, Settern und einem parameterlosen Konstruktor, kompatibel mit allen Java-Versionen und Serialisierungs-Frameworks
- Lombok @Data — annotierte Klassen, die Lomboks @Data-Annotation nutzen, um Getter, Setter, equals, hashCode und toString automatisch zu generieren, was den Codeumfang drastisch reduziert
- Java Records — Record-Klassen ab Java 14, die unveränderliche Datenträger mit automatischen Accessor-Methoden, Konstruktor, equals, hashCode und toString in einer einzigen Deklarationszeile bereitstellen
Kostenlos testen – keine Registrierung erforderlich
JSON in Java konvertieren →Annotationsoptionen
Der Konverter erzeugt Annotationen für gängige Java-JSON-Bibliotheken, um ein korrektes Feld-Mapping sicherzustellen.
- Jackson @JsonProperty — fügt @JsonProperty-Annotationen mit dem ursprünglichen JSON-Schlüsselnamen hinzu und stellt so eine korrekte Deserialisierung sicher, selbst wenn sich die Java-Feldnamen von den JSON-Schlüsseln unterscheiden
- Benutzerdefinierte Benennung — verwendet JSON snake_case- oder kebab-case-Schlüssel, erzeugt der Konverter Java-Feldnamen in camelCase mit @JsonProperty-Mapping auf das ursprüngliche Schlüsselformat
- Verschachtelte Klassen — erzeugt für verschachtelte JSON-Objekte korrekt strukturierte innere Klassen oder separate Top-Level-Klassen mit passenden Import-Anweisungen und Typreferenzen
Häufig gestellte Fragen
Sollte ich im erzeugten Code List oder ArrayList verwenden?
Der Konverter erzeugt Feldtypen über das List-Interface statt über die ArrayList-Implementierung. Das entspricht den Java-Best-Practices — man programmiert gegen Interfaces, nicht gegen Implementierungen. Die Felder können Sie in Ihren Konstruktoren mit ArrayList, LinkedList oder jeder anderen List-Implementierung initialisieren.
Wie entscheidet der Konverter zwischen primitiven Typen und Wrapper-Typen?
Standardmäßig verwendet der Konverter Wrapper-Typen (Integer, Double, Boolean) statt primitiver Typen (int, double, boolean). Wrapper-Typen können Null-Werte aus JSON abbilden, was für optionale Felder wichtig ist. Würde man primitive Typen für nullbare JSON-Felder verwenden, würde null stillschweigend in 0 oder false umgewandelt und dadurch Datenprobleme verschleiert.
Kann ich Klassen erzeugen, die mit Gson statt mit Jackson kompatibel sind?
Die erzeugte POJO-Ausgabe funktioniert ohne Änderungen sowohl mit Jackson als auch mit Gson. Wenn Sie Gson-spezifische Annotationen wie @SerializedName benötigen, können Sie @JsonProperty problemlos durch @SerializedName ersetzen — das Muster des Feld-Mappings ist identisch. Die erzeugten Feldnamen folgen unabhängig von der Serialisierungsbibliothek den Java-Konventionen.