JSON naar Go
Converteer JSON naar Go POJO-structs voor Go-ontwikkeling
JSON-invoer
Go-uitvoer
Wat is JSON naar Go?
Go gebruikt structs voor gestructureerde data. Bij het unmarshallen van JSON met encoding/json heb je structs nodig met passende velden en types. De JSON-specificatie definieert objecten, arrays, strings, getallen en booleans—maar Go heeft expliciete struct-definities nodig voor elk genest object. Handmatig schrijven is vervelend en foutgevoelig bij groot of complex JSON.
Deze tool genereert Go-structs uit je JSON. Stel struct- en package-naam in het configuratiepaneel in. Activeer JSON Tags voor json:"field_name" zodat struct-velden correct worden gemapt naar camelCase- of snake_case-sleutels. Activeer Pointers voor optionele of nullable velden om tussen nulwaarde en ontbrekend te onderscheiden. De uitvoer is klaar om in je project te plakken en te gebruiken met json.Unmarshal().
De conversie draait volledig in je browser. Je JSON wordt nooit naar een server gestuurd. Je kunt dit controleren via het Netwerk-tabblad van je browser.
Hoe deze tool te gebruiken
JSON plakken of uploaden
Kopieer je JSON en plak het in de linker editor. Je kunt ook op Uploaden klikken om een .json- of .txt-bestand te laden. Gebruik de Voorbeeld-knop voor voorbeelddata. Stel in het configuratiepaneel de structnaam (bijv. User) en package-naam (bijv. models) in. Activeer JSON Tags voor json:"key" struct-tags. Activeer Pointers voor optionele of nullable velden.
Gegenereerde structs controleren
Het rechterpaneel toont de gegenereerde Go-structs. Geneste objecten worden geneste of aparte structs. Arrays worden []Type. JSON-tags mappen struct-velden naar JSON-sleutels. Gebruik json.Unmarshal(data, &v) om je JSON te parsen. Bij ongeldige JSON-syntax: eerst de JSON Formatter of de JSON Validator gebruiken.
Kopiëren of downloaden
Gebruik Kopiëren om het resultaat op het klembord te zetten, of Downloaden om het als .go-bestand op te slaan. Plak het in je Go-project. Mogelijk moet je imports of package-namen aanpassen.
JSON naar Go-voorbeelden
Hier een voorbeeld van het genereren van Go-structs uit een JSON-object.
Voorbeeld: Abonnee-record
JSON-invoer:
Gegenereerde Go-uitvoer:
Wanneer JSON naar Go helpt
De meeste ontwikkelaars hebben dit nodig bij API-integratie. Je stuurt een verzoek via Postman of curl, en de response komt als JSON. Hier plakken levert getypeerde structs voor encoding/json. Voor het extraheren van specifieke waarden uit grote responses werkt jq goed op de commandoregel.
Configuratiebestanden zijn een ander veelvoorkomend geval. Een config.json of settings.json met geneste objecten heeft vaak een Go-struct nodig voor type-safe toegang. Voor het samenvoegen van twee JSON-bestanden: eerst de tool JSON Samenvoegen gebruiken.
Database-exporten van MongoDB, Firestore of CouchDB zijn typisch grote JSON-blobs. Deze hier doorheen halen helpt de documentstructuur te begrijpen en Go-structs te genereren voor importscripts of queries.
Veelgestelde vragen
Waarom JSON Tags?
Go-struct-veldnamen moeten geëxporteerd (hoofdletter) zijn voor JSON. JSON gebruikt vaak camelCase of snake_case. De tag json:"fieldName" mapt het struct-veld naar de JSON-sleutel. Activeer JSON Tags in de configuratie zodat de gegenereerde structs correct werken met json.Unmarshal en json.Marshal.
Pointers voor optionele velden?
Als een JSON-veld null of ontbrekend kan zijn, gebruik *Type om tussen nulwaarde (bijv. lege string) en ontbrekend te onderscheiden. Zonder pointers kun je het verschil niet zien. Activeer Pointers gebruiken in de configuratie voor optionele of nullable velden.
Worden mijn gegevens ergens naartoe gestuurd?
Nee. De generatie draait volledig in je browser in JavaScript. Er worden geen gegevens naar een server gestuurd. Je kunt dit controleren via het Netwerk-tabblad van je browser.
Hoe zit het met omitempty?
Voeg omitempty toe aan de JSON-tag voor velden die je niet in de uitvoer wilt als ze leeg zijn: json:"name,omitempty". Bewerk de uitvoer indien nodig. De generator voegt standaard geen omitempty toe omdat het afhangt van je use case.
Interface{} voor dynamische JSON?
Voor onbekende of sterk variabele structuur gebruik map[string]interface{} of interface{}. Deze tool genereert getypeerde structs voor bekende vormen. Als je JSON-structuur vaak verandert, geef je misschien de voorkeur aan interface{}.
Gerelateerde tools
Voor Go-JSON-verwerking: encoding/json. Voor JSON: JSON-specificatie, RFC 8259. Voor overzicht: MDN JSON. Voor API-tests: Postman. Voor Go-struct-tags: Go-specificatie. Zie ook jq voor JSON-verwerking.