Zum Inhalt springen
100% lokal

JSON zu Go-Struktur

Konvertiert ein JSON-Beispiel in Go-Strukturdefinitionen mit abgeleiteten Typen und Tags.

Eingabe
Ausgabe

JSON zu Go-Struktur

Fügen Sie ein JSON-Beispiel ein, und dieses Werkzeug generiert passende Go-Strukturdefinitionen mit json-Tags. Es leitet int, float64, string, bool und null für jedes Feld ab, erstellt benannte oder eingebettete Strukturen für verschachtelte Objekte und bestimmt Slice-Typen für Arrays — einschließlich Slices von Objekten, die ihre eigene wiederverwendbare Struktur haben.

Optionen prägen den generierten Code. Benennen Sie die Root-Struktur selbst oder lassen Sie das Werkzeug sie ableiten. Wählen Sie, wie Tags geschrieben werden — behalten Sie den ursprünglichen Schlüssel bei oder konvertieren Sie ihn unabhängig davon in snake_case oder camelCase, wie das ursprüngliche Feld benannt wurde. Aktivieren Sie "omitempty hinzufügen", um es zu jedem Tag hinzuzufügen, und "Zeiger für optionale Felder", um Felder, die in Teilen des Beispiels fehlen oder null sind, mit einem Zeigertyp zu kennzeichnen. Wenn Array-Objekte leicht unterschiedliche Felder haben, "Array-Elementformen zusammenführen" kombiniert sie in einer Struktur mit zusätzlichen Feldern, die als optional gekennzeichnet sind, anstatt den Element-Typ aufzugeben. Wählen Sie für Werte, die das Werkzeug nicht bestimmen kann, interface{}, den Alias any oder json.RawMessage zur verzögerten Dekodierung.

Dies ist der Schritt vor dem Schreiben eines API-Clients oder Config-Loaders in Go: Fügen Sie eine echte Antwort oder ein Config-Beispiel ein und erhalten Sie eine anfängliche Struktur, anstatt Feldnamen und Tags von Hand einzutippen. Verschachtelte Strukturen können als separate benannte Typen zur Wiederverwendung an anderer Stelle im Paket bleiben oder inline gerendert werden, wenn eine Form nur einmal verwendet wird. Für Felder, deren Tag nicht mehr dem ursprünglichen JSON-Schlüssel entspricht, ist ein Kommentar mit dem ursprünglichen Schlüssel verfügbar.

Alles läuft lokal in Ihrem Browser — das JSON, das Sie einfügen, das echte API-Antworten oder interne Konfiguration enthalten könnte, wird nie hochgeladen. Kopieren Sie das Ergebnis, laden Sie es als .txt-Datei herunter oder verschieben Sie die Ausgabe zurück in die Eingabe, um das Beispiel zu verfeinern und erneut zu generieren.

Häufige Fragen

Verarbeitet es verschachtelte Objekte und Arrays?
Ja. Verschachtelte Objekte werden zu ihrer eigenen benannten Struktur (oder einer eingebetteten anonymen, wenn Sie diese aktivieren), Arrays werden zu Slices, und ein Slice von Objekten wird eine Struktur wiederverwenden, wenn jedes Element dieselbe Form hat.
Was passiert, wenn Array-Objekte nicht alle dieselben Felder haben?
Mit "Array-Elementformen zusammenführen" aktiviert (Standard) kombiniert das Werkzeug jedes Feld, das es in den Elementen sieht, in einer Struktur, wobei Felder, die in einigen Elementen fehlen, als optional gekennzeichnet werden. Deaktivieren Sie dies, und das Werkzeug fällt auf einen dynamischen Element-Typ zurück.
Kann ich kontrollieren, wie JSON-Tags benannt werden?
Ja, mit der Option JSON-Tag-Format: Behalten Sie den ursprünglichen Schlüssel genau so bei, wie er im Beispiel vorkommt, oder konvertieren Sie jeden Schlüssel zu snake_case oder camelCase.
Welchen Typ erhalte ich für ein Feld, das das Werkzeug nicht ableiten kann?
interface{}, der Alias any oder json.RawMessage, je nach der gewählten Option — RawMessage ist nützlich, wenn Sie dieses Feld später selbst dekodieren möchten.
Wird mein JSON irgendwo hochgeladen?
Nein. Die Strukturgenerierung läuft vollständig in Ihrem Browser — das JSON, das Sie einfügen, verlässt Ihr Gerät nie.