JSON in TypeScript
JSON to TypeScript
Leitet aus einem JSON-Beispiel TypeScript-Interfaces oder -Typen ab und führt optionale und Union-Felder zusammen.
Fügen Sie eine JSON-Antwort ein und erhalten Sie TypeScript-Interfaces dafür. Die Inferenz führt jeden Datensatz der Stichprobe zusammen, statt nur den ersten zu lesen, sodass ein Feld, das nur in manchen vorkommt, optional statt erforderlich herauskommt – das ist der Unterschied zwischen einem Typ, der kompiliert, und einem Typ, der stimmt.
Beispiel-JSON
Eine .json-Datei ablegen
Wird in diesem Tab gelesen. Nichts wird hochgeladen.
Geben Sie ihm jedes Element, das Sie haben. Jeder weitere Datensatz engt die Vermutung ein – ein Feld, das in einem davon fehlt, ist genau das, was es optional macht.
TypeScript
So funktioniert es
Fügen Sie so viele Datensätze ein, wie Sie haben
Jedes Element jedes Arrays wird gelesen und zusammengeführt, nicht nur das erste. Drei Datensätze sagen weit mehr als einer, denn ein Feld, das in einem davon fehlt, ist genau das, was dieses Feld optional macht.
Benennen Sie den Wurzeltyp
Verschachtelte Objekte werden nach dem Schlüssel benannt, der sie enthält, bei Arrays in die Einzahl gesetzt, sodass `users` ein `User` ergibt. Nur die Wurzel braucht einen Namen von Ihnen.
Lesen Sie die Zähler unter der Ausgabe
Typen, optionale Felder, Unions und wie viele Datensätze zusammengeführt wurden. Ein Union-Zähler über null bedeutet, dass ein Feld in Ihrer Stichprobe zwei verschiedene Arten von Wert hatte – einen Blick wert, bevor Sie das Ergebnis in eine Codebasis einfügen.
Kopieren Sie die Interfaces heraus
Die Ausgabe ist ein Satz exportierter Interfaces in Deklarationsreihenfolge, bereit zum Einfügen in eine `.d.ts` oder neben den fetch, der sie zurückgibt.
Häufige Fragen
Ist das ein Validator?
Nein. TypeScript-Typen werden beim Build entfernt, also prüft hier nichts die Antwort zur Laufzeit – ein Server, der seine Form ändert, liefert Ihnen einen Wert, der über seinen Typ lügt. Wenn die Prüfung stattfinden soll, erzeugen Sie Zod auf demselben Bildschirm und parsen Sie damit.
Warum ist ein Feld als `string` typisiert, obwohl es ein Datum ist?
Weil es in JSON ein String ist. Die Inferenz ist strukturell – sie berichtet, was die Werte sind, und rät nicht, dass ein nach ISO 8601 aussehender String ein `Date` werden sollte. Das einzuengen ist eine Entscheidung über Ihre Codebasis, nicht über die Stichprobe.
Was, wenn ein Feld mal ein String und mal eine Zahl ist?
Es wird zu einer Union, `string | number`, und der Union-Zähler unten steigt. Das ist meist ein Signal über die API und nicht über den Typ – ein Feld, das seine Art wechselt, ist ein Bug, der irgendwo stromabwärts wartet.
Werden Literaltypen aus der Stichprobe erzeugt?
Nein – ein `status`, der in drei Datensätzen immer `"active"` ist, kommt trotzdem als `string` heraus. Drei Datensätze sind kein Beleg für ein Enum, und ein aus zu wenig Daten abgeleiteter Literaltyp ist die Art von Ding, die eine Woche später einen Build bricht.
Eingabe aus
Groß-/Kleinschreibung umwandeln
Case Converter
Wandelt zwischen GROSSBUCHSTABEN, kleinbuchstaben, Titel-, Satzschreibung, camelCase, snake_case, kebab-case und CONSTANT_CASE um.
JSON formatieren und validieren
JSON Formatter & Validator
Formatiert, minimiert und validiert JSON und zeigt bei Syntaxfehlern die genaue Zeile und Spalte.
JSON in Go-Structs
JSON to Go Structs
Erzeugt aus einem JSON-Beispiel Go-Structs mit json-Tags, verschachtelte und wiederholte Typen eingeschlossen.
JSON in Rust-Structs
JSON to Rust Structs
Erzeugt aus einem JSON-Beispiel serde-annotierte Rust-Structs, mit Option für nullbare oder fehlende Felder und snake_case-Umbenennungen.
Danach
Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.
JSON formatieren und validieren
JSON Formatter & Validator
Formatiert, minimiert und validiert JSON und zeigt bei Syntaxfehlern die genaue Zeile und Spalte.
JSON in Go-Structs
JSON to Go Structs
Erzeugt aus einem JSON-Beispiel Go-Structs mit json-Tags, verschachtelte und wiederholte Typen eingeschlossen.
JSON in JSON Schema
JSON to JSON Schema
Leitet aus einem oder mehreren Beispielen ein JSON Schema ab und vereinigt die gesehenen Formen.
JSON in Zod-Schema
JSON to Zod Schema
Baut aus einem JSON-Beispiel ein Zod-Schema, mit Ableitung von nullable, optional und enum.
Base64 kodieren und dekodieren
Base64 Encoder & Decoder
Kodiert und dekodiert Base64 und Base64URL für Text oder Dateien und behandelt UTF-8 korrekt.
curl in Code
curl to Code
Wandelt einen curl-Befehl in fetch, axios, Python requests, Go, PHP oder PowerShell um.