JSON-Eingabe

Go-Ausgabe

Was ist JSON zu Go?

Sie haben gerade eine REST-API in Postman aufgerufen, die Antwort ist JSON, und Sie müssen sie in Go unmarshallen — aber den Struct für eine tief verschachtelte Antwort von Hand zu schreiben ist wirklich mühsam. JSON und das encoding/json-Paket von Go arbeiten wunderbar zusammen, aber Go erfordert explizite Struct-Definitionen für jedes verschachtelte Objekt. Ein Feld vergessen oder einen Typ falsch angeben und Ihr Unmarshal gibt schweigend Nullwerte zurück. Dieses Tool generiert den vollständigen Struct-Baum aus Ihrem JSON, sodass Sie ihn direkt in Ihr Projekt einfügen können.

Dieses Tool erzeugt Go-Structs aus Ihrem JSON. Setzen Sie Struct- und Package-Namen im Konfigurationspanel. Aktivieren Sie JSON Tags für json:"field_name", damit Struct-Felder korrekt auf camelCase- oder snake_case-Schlüssel gemappt werden. Aktivieren Sie Pointer für optionale oder nullable Felder, um zwischen Nullwert und fehlend zu unterscheiden. Die Ausgabe ist bereit zum Einfügen in Ihr Projekt und für json.Unmarshal().

Die Konvertierung läuft vollständig in Ihrem Browser. Ihr JSON wird nie an einen Server gesendet. Sie können dies über die Netzwerk-Registerkarte Ihres Browsers prüfen.

So verwenden Sie dieses Tool

1

JSON einfügen oder hochladen

Kopieren Sie Ihr JSON und fügen Sie es in den linken Editor ein. Sie können auch auf Hochladen klicken, um eine .json- oder .txt-Datei zu laden. Nutzen Sie die Beispiel-Schaltfläche für Beispieldaten. Setzen Sie im Konfigurationspanel den Struct-Namen (z.B. User) und Package-Namen (z.B. models). Aktivieren Sie JSON Tags für json:"key" Struct-Tags. Aktivieren Sie Pointer für optionale oder nullable Felder.

2

Generierte Structs prüfen

Das rechte Panel zeigt die generierten Go-Structs. Verschachtelte Objekte werden zu verschachtelten oder separaten Structs. Arrays werden zu []Type. JSON Tags mappen Struct-Felder auf JSON-Schlüssel. Verwenden Sie json.Unmarshal(data, &v) zum Parsen. Bei ungültiger JSON-Syntax nutzen Sie zuerst den JSON Formatierer oder den JSON Validator.

3

Kopieren oder Herunterladen

Nutzen Sie Kopieren, um das Ergebnis in die Zwischenablage zu legen, oder Herunterladen, um es als .go-Datei zu speichern. Fügen Sie es in Ihr Go-Projekt ein. Möglicherweise müssen Sie Imports oder Package-Namen anpassen.

Beispiele: JSON zu Go

Hier ein Beispiel für die Generierung von Go-Structs aus einem JSON-Objekt.

Beispiel: Teilnehmerdatensatz

JSON-Eingabe:

Eingabe

Generierte Go-Ausgabe:

Ausgabe

Wann JSON zu Go hilft

Die meisten Entwickler brauchen dies bei der API-Integration. Sie senden eine Anfrage über Postman oder curl, und die Antwort kommt als JSON. Einfügen hier liefert typisierte Structs für encoding/json. Zum Extrahieren spezifischer Werte aus großen Antworten funktioniert jq gut in der Kommandozeile.

Konfigurationsdateien sind ein weiterer häufiger Fall. Eine config.json oder settings.json mit verschachtelten Objekten braucht oft einen Go-Struct für typsicheren Zugriff. Zum Zusammenführen von zwei JSON-Dateien gibt es das JSON Zusammenführen-Tool.

Datenbankexporte von MongoDB, Firestore oder CouchDB sind typischerweise große JSON-Blobs. Diese hier durchzulaufen hilft, die Dokumentstruktur zu verstehen und Go-Structs für Import-Skripte oder Abfragen zu generieren.

Häufig gestellte Fragen

Wie generiere ich Go-Structs automatisch aus JSON?

Fügen Sie Ihr JSON in dieses Tool ein und es generiert sofort Go-Structs. Aktivieren Sie JSON Tags, damit Feldnamen korrekt auf JSON-Schlüssel gemappt werden. Kopieren Sie die Ausgabe in Ihr Go-Projekt — bereit für json.Unmarshal().

Warum brauchen Go-Structs JSON-Tags?

Go-Struct-Feldnamen müssen für JSON exportiert (großgeschrieben) sein. JSON verwendet oft camelCase oder snake_case. Das json:"fieldName"-Tag teilt encoding/json mit, welcher JSON-Schlüssel welchem Struct-Feld entspricht. Ohne Tags führt json.Unmarshal case-insensitives Matching durch, das Felder lautlos übersehen kann.

Werden meine Daten irgendwohin gesendet?

Nein. Alles läuft in Ihrem Browser — Ihr JSON verlässt Ihren Rechner nie. Sie können dies in der Netzwerk-Registerkarte Ihres Browsers überprüfen. Sicher für Produktionsdaten.

Was ist mit omitempty?

Fügen Sie omitempty zum JSON-Tag für Felder hinzu, die bei leerem Wert nicht in der Ausgabe erscheinen sollen: json:"name,omitempty". Der Generator fügt es standardmäßig nicht hinzu, da es vom Anwendungsfall abhängt — bearbeiten Sie die Ausgabe nach dem Generieren.

Wann sollte ich Pointer für Struct-Felder verwenden?

Verwenden Sie *Type für optionale oder nullable Felder. Mit einem Pointer ergibt ein fehlendes JSON-Feld nil, was Sie prüfen können. Ohne Pointer erhalten Sie den Nullwert (z.B. 0, "") und können nicht unterscheiden, ob es fehlend oder leer war.

Verwandte Tools

Für Go-JSON-Handling siehe encoding/json. Für JSON siehe die JSON-Spezifikation und RFC 8259. Für einen Überblick siehe MDN JSON. Für API-Tests siehe Postman. Für Go-Struct-Tags siehe die Go-Spezifikation. Siehe auch jq für JSON-Verarbeitung.