Zum Inhalt springen
ToolsMinify logo
Entwickler-Tools

JSON-zu-TypeScript-Interface-Konverter

Erzeugen Sie TypeScript-Interfaces aus einem JSON-Beispiel im Browser: kein Konto, kein Upload, kein Codegen-CLI.

Über JSON-zu-TypeScript-Interface-Konverter

Erzeugen Sie TypeScript-Interfaces aus einem JSON-Beispiel im Browser: kein Konto, kein Upload, kein Codegen-CLI. Fuegen Sie eine API-Antwort ein oder, besser, ein Array von Datensaetzen. Verschachtelte Objekte werden benannte Interfaces, Arrays werden aus jedem Element typisiert (nicht nur dem ersten), identische Formen werden zusammengefuehrt. Der Walker vermischt fehlende Keys und JSON-null nicht: ein auf manchen Items weggelassener Key ist optional (`?`); ein vorhandener Key mit null ist `T | null`. Kopieren Sie das Ergebnis in eine `.ts`-Datei oder laden Sie sie herunter. Kombinieren Sie das mit dem JSON-Minifier, wenn die Payload minifiziert ankam, oder dem JSONPath Tester, um zuerst ein Feld zu pruefen.

So verwenden Sie JSON-zu-TypeScript-Interface-Konverter

  1. JSON einfuegen (ein Array von Datensaetzen inferiert optionale Keys genauer als ein einzelnes Objekt). Laden Sie ein Beispiel, um optional vs nullable zu sehen.
  2. Root-Namen setzen (User, Order, ApiResponse). interface (Standard) oder type alias waehlen.
  3. Den Bericht lesen: Anzahl der Deklarationen, optionale Keys, nullable Keys und Unions. Warnungen markieren leere Arrays, leere Objekte, nur-null-Felder und gequotete Keys.
  4. TypeScript kopieren oder eine .ts-Datei herunterladen. In types/ ablegen und fetch / TanStack Query mit dem Root-Namen annotieren.
  5. Es wird nichts an einen Server gesendet. Ungueltiges JSON meldet Zeile und Spalte.

Beispiele für JSON-zu-TypeScript-Interface-Konverter

Optionaler Key aus einem Array von Datensaetzen

[{"sku":"A1","qty":2},{"sku":"B7","qty":1,"gift":true}] wird zu Order mit gift?: boolean. Der Key ist optional, weil das erste Item ihn weggelassen hat - nicht weil der Wert null war.

Nullable vs optional

Zwei User, bei denen email in einer Zeile fehlt und note in der anderen null ist, ergeben email?: string und note: string | null. Fehlende Keys und JSON-null bleiben getrennt; die meisten Konverter fallen sie zusammen.

Benannte verschachtelte Interfaces

{"user":{"address":{"city":"London"}}} erzeugt Address, dann User, dann Root. Verschachtelte Objekte werden aus ihrem Key in PascalCase benannt, damit Sie Address allein importieren koennen.

Gequotete Keys und leere Container

{"content-type":"application/json","items":[],"meta":{}} quotet content-type, typisiert items als unknown[] und meta als Record<string, unknown>. Warnungen bitten um ein reicheres Beispiel.

interface vs type alias

Lassen Sie interface fuer API-Antwortformen (Declaration Merging, etwas bessere Fehler). Wechseln Sie zu type alias, wenn die Datei Unions oder Mapped Types enthalten wird. Zur Laufzeit ist beides identisch.

Häufige Anwendungsfälle

  • fetch()- oder axios-Antworten in React, Vue oder Next.js typisieren
  • TanStack Query / SWR-Generics aus einer echten Payload erzeugen
  • Einen Webhook-Body (Stripe, GitHub, Slack) in ein typisiertes Event verwandeln
  • Typen fuer ein Fixture entwerfen, bevor eine OpenAPI-Spec existiert
  • Ein JSON-Config-Blob in TypeScript mit Autocomplete umwandeln

Häufig gestellte Fragen zu JSON-zu-TypeScript-Interface-Konverter

Wie wandele ich JSON in ein TypeScript-Interface um?
JSON-Beispiel einfuegen, Root benennen und die erzeugten Interfaces kopieren. Die Konvertierung laeuft im Browser. Verschachtelte Objekte werden benannte Interfaces, Arrays werden aus jedem Element typisiert, und Keys, die in manchen Items fehlen, werden mit ? als optional markiert.
Was ist der Unterschied zwischen optional (?) und nullable (| null)?
Optional bedeutet, der Key fehlte bei manchen Array-Items. Nullable bedeutet, der Key war vorhanden und der Wert war JSON-null. email?: string erlaubt das Weglassen des Felds. note: string | null verlangt den Key. Dieser Konverter fasst sie nicht zu email?: string | null zusammen, ausser das Beispiel zeigt beides.
Soll ich interface oder type alias ausgeben?
Nutzen Sie interface fuer Objektformen, die Sie ueber Dateien hinweg erweitern oder mergen. Nutzen Sie type alias fuer Unions, Intersections und Mapped Types. Fuer eine typische API-Antwort funktionieren beide; diese Seite nimmt interface als Standard, weil das der uebliche TypeScript-Stil fuer JSON-Modelle ist.
Warum ist ein Feld unknown[] oder Record<string, unknown>?
Leere Arrays haben keine Elemente zum Pruefen, der Fallback ist unknown[]. Leere Objekte haben keine Keys, der Fallback ist Record<string, unknown>. Fuegen Sie ein gefuelltes Beispiel ein, um einen konkreten Elementtyp oder ein verschachteltes Interface zu bekommen.
Ersetzt das quicktype?
Nein. quicktype.io deckt Multi-Language-Codegen und Runtime-Validatoren ab. Diese Seite ist ein privater, clientseitiger JSON-zu-TypeScript-Interface-Konverter fuer eine eingefuegte Payload: keine Installation, kein Konto, und ein Bericht, der optionale Keys von JSON-null trennt.
Wird mein JSON hochgeladen?
Nein. Parsen und Inferenz laufen nur im Browser. Sicher fuer interne API-Antworten, Tokens und PII. Pruefen Sie in DevTools Network: Konvertieren sendet keine Anfrage.
Kann ich Typen aus einem JSON-Array erzeugen?
Ja, und das sollten Sie, wenn Keys variieren. Ein Array von Datensaetzen wird zu einem Interface zusammengefuehrt. Fehlende Keys werden optional. Wenn Sie die Root Users nennen, ist die Ausgabe interface User plus type Users = User[]. Wenn Sie sie User nennen, tippen Sie die Payload als User[].