Typgenerierung

JSON zu JavaModelle aus echten API-Antworten

Ein Array liefert das Elementmodell. Lesen Sie die gesamte Antwort als List<Root> ein.

JSON zu Java

JSON-Eingabe

Analyse und Generierung erfolgen im Browser. Eingaben werden nicht hochgeladen oder gespeichert.

Erzeugter Quellcode

Generierungsoptionen

Jackson 2.x; Kotlin benötigt sein Modul. Typableitung ersetzt keine Validierung. Decoder-Einstellungen stehen weiter unten.

Array-Eingabe: Die Datei definiert das Elementmodell. Als List<Root> einlesen.

2 Klassen · 2 nullable Felder

JSON zu Java hilft, wenn eine API-Antwort vorliegt, aber die Typdefinition fehlt. Mehrere Objekte in einem Array zeigen auch Felder, die später hinzukommen oder null werden.

Der POJO Generator liefert einen Entwurf. Aus Beispielen lassen sich keine verbindlichen Pflichtfelder oder künftigen Werte ableiten; dafür bleibt die Schnittstellenbeschreibung maßgeblich.

Warum JSON zu Java?

Alle Datensätze berücksichtigen

JSON zu Java führt die Felder sämtlicher Objekte an derselben Arrayposition zusammen. Ein erst später vorhandenes Feld bleibt erhalten; fehlende Werte und null beeinflussen den abgeleiteten Typ.

Zwei unterschiedliche Datensatzkarten fließen in ein Modell; ein hohler Marker kennzeichnet ein fehlendes Feld.

Originalnamen zuordnen

Um Java Klassen generieren zu können, müssen Schlüssel mit Sonderzeichen sichere Bezeichner erhalten. Jackson Annotationen bewahren die Zuordnung zum Original. Bei Namenskollisionen entstehen feste numerische Zusätze.

Unregelmäßige Schlüssel sind über gleichfarbige Linien mit sicheren Feldern und einer verschachtelten Klasse verbunden.

Beispiele und Einstellungen prüfen

01

Aussagekräftige Varianten sammeln

Geben Sie ein Objekt oder ein nicht leeres Array ausschließlich aus Objekten ein. Das Array bestimmt ein gemeinsames Elementmodell, keine erfundene Hüllstruktur. Innere Arrays werden rekursiv ausgewertet.

02

Nullwerte und Klassenanordnung wählen

Beobachtete Nullwerte oder fehlende Felder führen zu weiteren Typen. Der Modus für alle Felder verwendet Java-Wrapper und Kotlin-Eigenschaften mit ? und null-Vorgabe. Ohne Verschachtelung stehen Hilfsklassen auf Dateiebene.

03

Nur den aktuellen Stand exportieren

Die Automatik wartet 350 ms. Ausgeschaltet erscheint die Schaltfläche zum Generieren; Ctrl/Cmd+Enter funktioniert ebenfalls. Änderungen sperren den Export. Leeren und Beispiel laden lassen sich einmal samt Eingabe, Optionen und Ergebnis zurücknehmen.

Eigenschaften des erzeugten Modells

Zahlen ohne frühe Rundung

Normale Ganzzahlen im vorzeichenbehafteten 64-Bit-Bereich werden long/Long, größere Werte BigInteger. Dezimal- und Exponentschreibweisen wie 1.0 oder 1e3 ergeben BigDecimal. Die Analyse verwendet keine JavaScript-Gleitkommazahlen.

Kotlin auf derselben Seite

Der Sprachwechsel erzeugt data classes. Fehlende oder als null beobachtete Eigenschaften erhalten T? = null, andere keinen Vorgabewert. Ein leeres Wurzelobjekt wird eine gewöhnliche class ohne Konstruktorparameter.

Bezeichner und Annotationen

Felder erhalten ASCII-camelCase-Namen. Reservierte Wörter und Kollisionen werden aufgelöst. JsonProperty sitzt in Java am Feld, in Kotlin an Parameter und Getter. Vollqualifizierte Typnamen vermeiden Konflikte mit Wurzelnamen wie String oder List.

Eine Quelldatei

Java nutzt öffentliche Felder und standardmäßig statische innere Klassen; Kotlin nutzt verschachtelte Datenklassen. Ohne Verschachtelung sind Java-Hilfsklassen auf Dateiebene nicht public. Der Download bleibt eine Datei.

Voraussetzungen und Grenzen

Jackson passend konfigurieren
Die Annotationen richten sich an Jackson 2.x. Kotlin benötigt zusätzlich jackson-module-kotlin und kotlin-reflect. Für Nullprüfungen sind FAIL_ON_NULL_FOR_PRIMITIVES und StrictNullChecks relevant. Java-Referenztypen können weiterhin null enthalten; das Modell ist kein Validator.
Breite Typen brauchen Zahlenoptionen
Gemischte Werte und reine Nullfelder werden Object/Any, leere innere Objekte Map. Leere Arrays liefern keinen Elementtyp. Aktivieren Sie USE_BIG_INTEGER_FOR_INTS und USE_BIG_DECIMAL_FOR_FLOATS für diese dynamischen Stellen. Beim Serialisieren leerer Wurzelklassen muss FAIL_ON_EMPTY_BEANS aus sein.
Nicht abbildbare Schlüssel ablehnen
Ein leerer JsonProperty-Name bedeutet Standardname und kann keinen leeren JSON-Schlüssel abbilden. Auch notwendiges Umbenennen bei ausgeschalteten Annotationen führt zum Fehler. Verwenden Sie dafür eine Map oder einen eigenen Decoder.
Keine Schema- oder Framework-Vorlagen
JSON Schema, OpenAPI, Lombok, Records, Gson sowie Datums- und Enum-Erkennung sind nicht enthalten. Strings bleiben Strings. Skalare, leere und gemischte Arrays an der Wurzel werden abgelehnt. Fehlend und explizit null sind keine getrennten Zustände.
Begrenzte Verarbeitung
Nur striktes JSON, ohne Kommentare, doppelte Schlüssel, Reparatur, URL-Abruf oder Dateiimport. Grenzen: 500.000 Eingabezeichen, 50.000 Knoten, Tiefe 40, 100 Felder je Objekt, 200 Klassen, je 1.000 Zeichen pro Schlüssel/Zahlentoken, Exponentenbetrag 10.000 und 1.000.000 Ausgabezeichen.

Fragen zu JSON zu Java

Passt der Code zu Spring Boot?

JSON zu Java erzeugt Modelle für Jackson 2.x. Fügen Sie Paketdeklaration und Abhängigkeiten im Projekt hinzu; prüfen Sie bei Kotlin auch Modul und Nullregeln. Es wird keine Konfiguration für jede Spring-Boot-Version erzeugt.

Werden Arrays aus Objekten verarbeitet?

Ja, sofern das Array nicht leer ist und nur Objekte enthält. Alle Elemente tragen zum Modell bei. Zum Einlesen der vollständigen Antwort verwenden Sie List<Root> statt Root.

Bleiben meine Daten im Browser?

Eingabeanalyse und Codeerzeugung laufen im aktuellen Browser. Die Eingabe wird weder hochgeladen noch gespeichert. URL-Abfragen und Freigabelinks für Beispieldaten gibt es hier nicht.

Wie werden Zahlentypen bestimmt?

Einfache Ganzzahlen ergeben je nach Wertebereich long/Long oder BigInteger. Dezimal- und Exponententoken ergeben BigDecimal. Für Zahlen in Object/Any gelten zusätzlich die oben genannten Jackson-Optionen.

Warum erscheint Object als Feldtyp?

An dieser Position wurden unvereinbare Typen oder ausschließlich null gefunden. Object drückt die fehlende Grundlage aus. Ergänzen Sie Beispiele oder präzisieren Sie den Typ anhand des tatsächlichen Vertrags.

Fehlt ein wichtiger Inferenzfall?

Das Modell im Projekt testen

Mit JSON zu Java mehrere echte Antworten prüfen, Nullwerte und Jackson-Einstellungen abstimmen und die exportierte Datei anschließend im eigenen Projekt kompilieren.