Utilo

JSON zu Typen

Erzeugen Sie Go-Structs, Rust-serde-Structs, Zod-Schemas, Pydantic-Modelle, Kotlin-Data-Classes, Java-Records, C#-Klassen, Swift Codable und TypeScript-Typen aus JSON. Optionale und nullable Felder in Arrays werden erkannt.

Was macht dieser JSON zu Typen Generator

Das Schreiben von Modellklassen für eine große API-Antwort ist langsam und fehleranfällig. Wenn Sie ein JSON-Sample einfügen, leitet dieses Tool ein vollständiges Typmodell ab und druckt es als Go-Strukture mit json-Tags, Rust-Strukture mit serde-Derivaten, Zod-Schemas, Pydantic-Modelle, Kotlin-Datenklassen, Java-Datensätze, C#-Klassen, Swift-Codable-Strukturen oder TypeScript-Schnittstellen. Eingebettet Objekte werden zu ihren eigenen benannten Typen, Arrays von Objekten werden zusammengeführt, so dass jedes Feld, das in einem Element gesehen wird, erfasst wird, und die Schlussfolgerung läuft in einem Webworker, so dass auch Multi-Megabyte-Samples die Seite nicht einfrieren.

So verwenden Sie es

  1. Einfügen von JSON in die Eingabe oder Laden der Probe.
  2. Setzen Sie den Root-Typnamen, z. B. User oder OrderResponse.
  3. Wählen Sie die Zielsprache. Die Ausgabe regeneriert sich sofort.
  4. Kopieren Sie den Code in Ihr Projekt und passen Sie Namen oder Typen an, wenn Ihr Domänenwissen die Schlussfolgerung übertrifft.

Wie Schlussfolgerungen funktionieren

  • Optionelle Felder: Wenn in einigen Elementen eines Arrays ein Schlüssel fehlt, wird er als optional gekennzeichnet (? in TS, Option<T> in Rust, omitempty in Go, = None in Pydantic).
  • Nullierbare Felder: Ein null-Wert macht das Feld in der Zielsprache null.
  • Zahlen: Ganzzahlen und Floats werden separat verfolgt, so dass 42 zu int64/i64/Long wird, während 4.2 zu einem Float-Typ wird.
  • Mixed-Typen: Wenn ein Feld verschiedene Typen enthält, erhalten Sprachen mit Unions (TypeScript, Zod, Pydantic) eine Union, und die anderen fallen auf einen generischen JSON-Werttyp zurück.
  • ** Benennung:** Schlüssel wie user_id oder created-at werden pro Sprache in idiomatische Feldnamen umgewandelt, wobei der ursprüngliche Schlüssel in Tags oder Anmerkungen (json:"user_id", #[serde(rename)], @SerialName, CodingKeys) erhalten bleibt.

Tipps

  • Führen Sie ihm eine repräsentative Probe. Ein einzelnes Objekt mit einem leeren Array sagt dem Tool nichts über die Elemente des Arrays.
  • Verschmelzen mehrerer Antworten in ein Top-Level-Array, um optionale Felder zuverlässig zu erfassen.
  • Zod-Ausgabe exportiert sowohl das Schema als auch den abgeleiteten Typ, so dass Sie Laufzeitvalidierung und statisches Tippen zusammen erhalten.

Häufige Fragen

Ist mein JSON irgendwo hochgeladen?
  • Nein, nicht wirklich. Parsing und Code-Generierung geschehen in Ihrem Browser in einem Hintergrundarbeiter.
Warum wird ein Feld als any oder interface{} eingegeben?

Es war null in jeder Probe, oder ein leeres Array, so dass kein konkreter Typ abgeleitet werden konnte. Gib eine Stichprobe mit einem realen Wert.

Geht es um Dates?

JSON hat keinen Datumstyp, also bleiben ISO-Strings Strings. Wechseln Sie sie manuell in time.Time, datetime oder Date, wenn Ihr Decoder dies unterstützt.

Kann ich ein JSON-Schema generieren?

Verwenden Sie die Ausgabe Zod oder Pydantic; beide Bibliotheken können JSON Schema direkt exportieren.

Ja. Die gesamte Verarbeitung erfolgt direkt in deinem Browser mit JavaScript, Web Workern und Web-APIs. Nichts, was du eingibst, einfügst oder hochlädst, wird an unsere Server gesendet.

Diese Seite wurde automatisch aus dem Englischen übersetzt. Wenn dir ein Fehler auffällt, sag uns bitte Bescheid.