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

1

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.

2

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.

3

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:

Invoer

Gegenereerde Go-uitvoer:

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.