Zum Inhalt springen
100% lokal

JSON zu Java-Klasse

Wandel eine JSON-Beispiel in Java-Klassen um, mit automatisch abgeleiteten verschachtelten Typen und generischen Listen.

Eingabe
Ausgabe

JSON zu Java-Klasse

Füge ein JSON-Beispiel ein und dieses Tool generiert die Java-Klassen, die nötig sind, um es darzustellen. Es leitet Feldtypen, verschachtelte Objekttypen und generische Listenelementtypen direkt aus den bereitgestellten Werten ab. Es wurde für Backend-Entwickler entwickelt, die eine API-Antwort oder eine Konfigurationsdatei erhalten und ein typisiertes Modell zur Deserialisierung benötigen, ohne jedes Feld manuell zu schreiben.

Wähle, wie Felder annotiert werden: keine, Jacksons @JsonProperty oder Gsons @SerializedName, jedes trägt den ursprünglichen JSON-Schlüssel, damit die Serialisierung nach einer Umbenennung des Felds in camelCase immer noch passt. Deaktiviere Getter und Setter für eine einfache Klasse mit öffentlichen Feldern, oder ersetze sie durch Lomboks @Data oder einen Java-Record, bei dem Komponenten die Stelle von Feldern und Accessoren einnehmen. Wrapper-Typen (Integer, Boolean, Double) können überall statt Primitiven erzwungen werden; das Tool verwendet immer einen Wrapper, wenn ein Wert wirklich optional ist, da ein Primitiv niemals null enthalten kann. Eine Paketdeklaration wird hinzugefügt, falls angegeben, und verschachtelte Objekte werden als statisch verschachtelte Klassen in einer Datei oder als separate Top-Level-Klassen dargestellt.

Wenn die gleiche Form mehrmals vorkommt – wiederholte Objekte in einem Array oder zwei Geschwisterfelder mit identischer Struktur – verwendet das Tool eine einzelne generierte Klasse wieder, anstatt sie zu duplizieren. Felder, die über ein Array hinweg in verschiedenen Formen beobachtet werden, werden in einer Klasse zusammengeführt, wobei Felder, die in einigen Elementen fehlen, als optional markiert werden. Zahlen bleiben als int, wenn sie in einen 32-Bit-Bereich passen, und werden zu long oder double, wenn nötig; ein JSON-Schlüssel, der kein gültiger Java-Bezeichner ist, z. B. ein Emoji, fällt auf einen sicheren generierten Namen zurück.

Alles läuft lokal in deinem Browser – dein JSON-Beispiel wird niemals auf einen Server hochgeladen oder übertragen. Kopiere die generierten Klassen in dein Projekt, lade sie als .txt-Datei herunter oder sende die Ausgabe zurück in die Eingabe, um ein anderes Tool darauf auszuführen.

Häufige Fragen

Bearbeitet es verschachtelte Objekte und Arrays?
Ja. Verschachtelte Objekte werden zu ihrer eigenen Klasse (verschachtelt oder separat, je nach der Klassenlayout-Option), und Arrays werden zu einer generischen java.util.List des abgeleiteten Elementtyps.
Was passiert mit einem Feld, das bei einigen Beispielobjekten fehlt?
Es wird als optional markiert und, wenn es sich um einen Primitiven handelt, auf seinen Wrapper-Typ (Integer, Boolean, Double) aktualisiert, damit das Feld legitim null sein kann.
Kann ich Lombok oder Java-Records statt manueller Getter und Setter verwenden?
Ja. Aktiviere Lombok @Data für eine mit @Data annotierte Klasse und private Felder, oder verwende einen Java-Record, um einen Record mit den Feldern als Komponenten zu generieren – beide ersetzen handgeschriebene Accessoren.
Wie werden Feldnamen gewählt, wenn ein JSON-Schlüssel keine gültige Java-Kennung ist?
Der Schlüssel wird in camelCase umgewandelt; ein Schlüssel, der einen leeren oder mit einem Schlüsselwort kollidierenden Namen ergibt, fällt auf einen sicheren generierten Namen wie field oder ein Schlüsselwort mit einem nachgestellten Unterstrich zurück.
Wird mein JSON irgendwo hochgeladen?
Nein. Die Klassenerzeugung läuft vollständig in deinem Browser – dein JSON-Beispiel wird niemals auf einen Server gesendet.