Fügen Sie ein JSON-Beispiel ein und kopieren Sie die passenden Go-Typdeklarationen: Structs, Slices, skalare Felder und json-Tags, verschachtelte Objekte inline oder als benannte Typen.
Läuft lokal in deinem BrowserFügen Sie ein JSON-Beispiel ein, und das Werkzeug schreibt die passenden Go-Typdeklarationen: Structs, Slices, skalare Felder und die json-Tags, die jedes Feld an seinen Schlüssel binden. Die Namen folgen den Go-Konventionen, verschachtelte Objekte bleiben wahlweise inline oder werden benannte Typen, und identische Formen werden nur einmal deklariert.
Die Umwandlung läuft in diesem Browser-Tab. Nichts wird hochgeladen, keine Anfrage gesendet; die Seite funktioniert weiter offline und eignet sich für Daten, die Sie nicht an Dritte schicken dürfen.
Ganzzahlen werden zu int, wenn sie in 32 Bit passen, sonst zu int64; Dezimalzahlen zu float64. Eine Zahl wie 1.0 bleibt float64, obwohl sie ganzzahlig aussieht, und ein Array aus Ganz- und Dezimalzahlen wird zu []float64. Ein Array mit Werten ohne gemeinsamen Typ — Zahl und Zeichenkette, Objekt und Zahl — fällt auf []interface{} zurück.
Ein Array aus Objekten wird zu einem Struct mit der Vereinigung aller Schlüssel zusammengeführt; ein Schlüssel, der in einigen Elementen fehlt, erhält omitempty. Ein Feld, das in einem Element ein Objekt und in einem anderen ein Skalar ist, wird interface{}. Zeichenketten in der Form eines RFC-3339-Zeitstempels (2024-05-06T07:08:09Z) werden time.Time — dafür muss der Import time von Hand ergänzt werden.
Feldnamen sind exportierte Go-Namen: user-id wird zu UserID, und gängige Abkürzungen wie ID, URL, API und HTTP behalten ihre Großschreibung. Der Originalschlüssel bleibt im Struct-Tag erhalten, sodass der erzeugte Code weiterhin zu Ihrem Payload passt.
Zwei Schlüssel, die denselben Go-Namen ergeben, bekommen ein numerisches Suffix (UserID und UserID2); Schlüssel nur aus Symbolen werden zu Field, Field2 und so weiter. Anführungszeichen und Backslashes im Schlüssel werden im Tag maskiert, damit der Code gültig bleibt.
Es sind nur Deklarationen: keine package-Zeile, keine Importe, keine Methoden und keine Kompilierung an dieser Stelle. Die Typen beschreiben das eingefügte Beispiel, kein Schema — ein Feld, das dort null oder nicht vorhanden ist, wird nach Ihren Daten typisiert. Prüfen Sie Nullbarkeit und Zahlenbreite an einem größeren Payload.
Große Dokumente werden ebenfalls im Browser verarbeitet und sind durch den Speicher Ihres Geräts begrenzt. Behandeln Sie das Ergebnis als Ausgangspunkt zum Prüfen: Typen umbenennen, ergänzen, was das Beispiel nicht zeigen konnte, und die Datei danach durch den Compiler schicken.