JSON zu Go Struct Konverter â Structs generieren
JSON online in Go-Structs umwandeln: mit json-Tags, omitempty, Pointer-Typen fĂŒr optionale Felder und Unmarshal-Helfern. Kostenlos, sofort und privat im Browser.
đ LĂ€uft vollstĂ€ndig in Ihrem Browser â nichts wird hochgeladenGo-Structs aus JSON erzeugen
Go-Structs fĂŒr eine groĂe API-Antwort von Hand zu schreiben ist langsam und fehleranfĂ€llig. Dieser JSON-zu-Go-Konverter erledigt das sofort: FĂŒgen Sie ein JSON-Beispiel ein, und er erzeugt exportierte Struct-Typen mit korrekt geschriebenen Feldnamen und json-Struct-Tags, die jedes Feld dem ursprĂŒnglichen SchlĂŒssel zuordnen. Verschachtelte Objekte werden zu eigenen benannten Structs, Arrays zu Slices, Ganzzahlen und Gleitkommazahlen werden als int64 und float64 unterschieden, und ISO-8601-Zeitstempel werden als time.Time erkannt. Die Ausgabe ist ohne weitere Bearbeitung fĂŒr encoding/json bereit.
Das Tool basiert auf quicktype, das jedes Element jedes Arrays betrachtet, bevor es einen Typ wĂ€hlt. TrĂ€gt ein Eintrag einer Liste ein Feld, das den anderen fehlt, wird dieses Feld zu einem Pointer, sodass Nullwert und fehlender Wert unterscheidbar bleiben â ein Detail, das Konverter mit nur einem Durchlauf oft falsch machen.
Optionen, die in Go zÀhlen
Legen Sie den package-Namen fest, damit die Datei dort kompiliert, wo Sie sie ablegen. Aktivieren Sie omitempty, wenn Sie diese Structs auch wieder zu JSON serialisieren und fehlende optionale Felder fehlen sollen. StandardmĂ€Ăig fĂŒgt der Generator um den Root-Typ kleine UnmarshalâŠ- und Marshal-Hilfsfunktionen hinzu; aktivieren Sie Structs only, wenn Sie lieber selbst json.Unmarshal aufrufen und nur die Typen benötigen. Benennen Sie das Root-Struct von Root in den gewĂŒnschten Fachnamen um â etwa Repository oder WebhookEvent.
Das beste Ergebnis erzielen
Geben Sie dem Konverter ein reprĂ€sentatives Beispiel: ein Array mit mehreren Elementen, ausgefĂŒllte optionale Felder und befĂŒllte statt leere verschachtelte Objekte. Leere Arrays und null-Werte liefern der Typableitung nichts und fallen auf interface{} zurĂŒck. FĂŒhren Sie nach dem EinfĂŒgen gofmt aus, prĂŒfen Sie numerische Typen, bei denen das Beispiel den vollen Wertebereich nicht zeigt, und ersetzen Sie generische Strings durch eigene Typen, wo Ihre API feste Werte dokumentiert. Da die gesamte Verarbeitung in Ihrem Browser stattfindet, verlassen interne oder Kundendaten nie Ihren Rechner.
So verwenden Sie
- JSON einfĂŒgenFĂŒgen Sie eine API-Antwort oder ein beliebiges JSON-Dokument ein oder laden Sie das Beispiel.
- Optionen wĂ€hlenLegen Sie Root-Struct-Namen und Package fest und entscheiden Sie ĂŒber omitempty und Hilfsfunktionen.
- Structs kopierenKopieren Sie den Go-Code oder laden Sie eine .go-Datei herunter und fĂŒhren Sie wie gewohnt gofmt aus.
HĂ€ufig gestellte Fragen
Werden json-Struct-Tags hinzugefĂŒgt?
`json:"key"`-Tag, das den ursprĂŒnglichen JSON-SchlĂŒssel bewahrt, und mit einem KontrollkĂ€stchen können Sie optionalen Feldern ,omitempty hinzufĂŒgen.Wie werden optionale und Null-Felder behandelt?
*string, sodass Sie einen fehlenden Wert von einem Nullwert unterscheiden können.Was machen die Hilfsfunktionen?
UnmarshalRoot und Marshal. Aktivieren Sie Structs only, um nur die Typdeklarationen zu erhalten.