Entwickler / JSON
JSON zu Go-Struct
Füge ein JSON-Beispiel ein und erhalte Go-Struct-Definitionen mit exportierten Feldnamen, den von Go-Lintern erwarteten Abkürzungen und json-Tags – bereit zum Einfügen in deinen Code.
JSON zu Go-Struct: Der Konverter liest das JSON in deinem Browser und erstellt für jedes Objekt eine Struct. Aus den Schlüsseln werden exportierte CamelCase-Namen. Abkürzungen wie ID, URL und HTTP bleiben dabei großgeschrieben, wie es golint empfiehlt. Jedes Feld behält seinen ursprünglichen Schlüssel in einem json-Tag; die Formatierung entspricht gofmt. Objekte in einem Array werden zusammengeführt: Ein Schlüssel, der in einigen Objekten fehlt, erhält omitempty, und ein Schlüssel, der manchmal null ist, wird zu einem Zeiger. Ganze Zahlen werden zu int64, sofern an derselben Stelle keine Dezimalzahl vorkommt; dann wird daraus float64. Läuft zu 100% lokal in deinem Browser, ohne Datei-Uploads zum Server.
- Kategorie
- Entwicklerwerkzeuge
- Ausführungen
- In deinem Browser
- Kosten
- Kostenlos · ohne Anmeldung
- Verfügbarkeit
- Einsatzbereit
Läuft vollständig in deinem Browser
Go
type User struct {
ID int64 `json:"id"`
UserName string `json:"user_name"`
AvatarURL string `json:"avatar_url"`
Score float64 `json:"score"`
Tags []string `json:"tags"`
Address Address `json:"address"`
}
type Address struct {
City string `json:"city"`
ZipCode string `json:"zip_code"`
}Schlüssel, die in einigen Objekten eines Arrays fehlen, erhalten omitempty; Schlüssel, die manchmal null sind, werden zu Zeigern. Prüfe die Typen anhand der Dokumentation deiner API: Ein Beispiel zeigt nur, was es enthält.
Von einem Beispiel zum Datentyp
Go decodiert JSON mit encoding/json in Strukturen. Dabei ordnet es jeden Schlüssel anhand seines json-Tags einem Feld zu oder – wenn kein Tag vorhanden ist – anhand des Namens ohne Beachtung der Groß- und Kleinschreibung. Ausgefüllt werden nur exportierte Felder, also Felder, die mit einem Großbuchstaben beginnen. Deshalb beginnt hier jedes Feld mit einem Großbuchstaben und behält den ursprünglichen Schlüssel in seinem Tag.
Ein einzelnes Beispiel zeigt nur, was darin enthalten ist. Eine Liste von Benutzern, bei der einem die E-Mail-Adresse fehlt, zeigt dem Konverter, dass die E-Mail-Adresse optional ist; ein einzelnes Objekt kann das nicht. Füge mehrere repräsentative Objekte in ein Array ein, wenn du sie hast, und vergleiche das Ergebnis mit der Dokumentation der API. Der JSON-Formatierer hilft dir, zuerst die Struktur einer langen Antwort zu erkennen.
Andere Sprachen und Schemata
Dasselbe Beispiel kann mit dem Konverter JSON zu TypeScript in TypeScript-Schnittstellen umgewandelt werden – für ein Frontend, das dieselbe API ausliest – oder in ein JSON Schema, um Nutzdaten an der Schnittstelle zu validieren.
So benutzt du es
- Füge ein JSON-Objekt oder -Array ein, zum Beispiel eine API-Antwort.
- Benenne den obersten Typ und wähle separate oder verschachtelte Structs.
- Kopiere den Go-Code.
Datenschutz & Einschränkungen
Dein JSON wird in deinem Browser umgewandelt und niemals hochgeladen.
Ähnliche Tools
Häufige Fragen
Warum heißt user_id UserID und nicht UserId?
Im Go-Stil werden Abkürzungen einheitlich geschrieben, also UserID, APIKey und AvatarURL. Der Konverter verwendet die Liste der Abkürzungen aus golint, dem Linter, der diese Regel populär gemacht hat.
Wann erhält ein Feld omitempty oder einen Zeiger?
Wenn es sich beim Beispiel um ein Array aus Objekten handelt und ein Schlüssel in einigen Objekten fehlt, erhält das Feld omitempty. Beim Serialisieren wird es dann weggelassen, wenn es leer ist. Wenn ein Schlüssel in einigen Objekten null ist, wird das Feld zu einem Zeiger, sodass nil für null stehen kann. Du kannst außerdem jedem Feld omitempty hinzufügen.
Warum int64 und float64?
JSON kennt nur einen Zahlentyp. Ein Wert ohne Dezimalpunkt wird zu int64, ein Wert mit Nachkommastellen zu float64. Wenn eine ID größer als 2^53 werden könnte oder tatsächlich eine als Zahl getarnte Zeichenkette ist, ändere den Typ von Hand: Ein Beispiel zeigt nur die darin enthaltenen Werte.
Was passiert mit null oder leeren Arrays?
Wenn keine weiteren Informationen vorliegen, erhält ein Feld, das immer null ist, oder ein leeres Array den Typ any (interface{}), der beliebige Werte akzeptiert. Ersetze ihn durch den tatsächlichen Typ, sobald du ihn kennst.
Kostenloses Tool · läuft in deinem browser · kein Konto nötig