JSON-Eingabe

Go-Ausgabe

Was ist JSON zu Go?

Go verwendet Structs für strukturierte Daten. Beim Unmarshalling von JSON mit encoding/json brauchen Sie Structs mit passenden Feldern und Typen. Die JSON-Spezifikation definiert Objekte, Arrays, Strings, Zahlen und Booleans—aber Go benötigt explizite Struct-Definitionen für jedes verschachtelte Objekt. Das manuelle Schreiben ist mühsam und fehleranfällig bei großem oder komplexem JSON.

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 <code>[]Type</code>. JSON Tags mappen Struct-Felder auf JSON-Schlüssel. Verwenden Sie <code>json.Unmarshal(data, &amp;v)</code> zum Parsen. Bei ungültiger JSON-Syntax nutzen Sie zuerst den JSON Formatierer oder den JSON Validator.

3

Kopieren oder Herunterladen

Nutzen Sie <strong>Kopieren</strong>, um das Ergebnis in die Zwischenablage zu legen, oder <strong>Herunterladen</strong>, um es als <code>.go</code>-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 <code>config.json</code> oder <code>settings.json</code> 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

Warum 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 mappt das Struct-Feld auf den JSON-Schlüssel. Aktivieren Sie JSON Tags in der Konfiguration, damit die generierten Structs korrekt mit json.Unmarshal und json.Marshal funktionieren.

Pointer für optionale Felder?

Wenn ein JSON-Feld null oder fehlend sein kann, verwenden Sie *Type, um zwischen Nullwert (z.B. leerer String) und fehlend zu unterscheiden. Ohne Pointer können Sie den Unterschied nicht erkennen. Aktivieren Sie Use Pointers in der Konfiguration für optionale oder nullable Felder.

Werden meine Daten irgendwohin gesendet?

Nein. Die Generierung läuft vollständig in Ihrem Browser mit JavaScript. Keine Daten werden an einen Server gesendet. Sie können dies über die Netzwerk-Registerkarte Ihres Browsers prüfen.

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". Bearbeiten Sie die Ausgabe bei Bedarf. Der Generator fügt omitempty standardmäßig nicht hinzu, da es vom Anwendungsfall abhängt.

Interface{} für dynamisches JSON?

Für unbekannte oder stark variable Struktur verwenden Sie map[string]interface{} oder interface{}. Dieses Tool generiert typisierte Structs für bekannte Formen. Bei häufig wechselnder JSON-Struktur bevorzugen Sie möglicherweise interface{}.

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.