Go naar JSON Converter
Plak een Go struct plus een composite literal. Krijg schone JSON terug.
Wat deze tool doet
Je hebt een Go struct met json:"..." tags en ergens een composite literal (order := Order{...}), en je hebt de JSON-vorm nodig die encoding/json zou produceren. Plak beide in de linker editor en druk op Converteren. De tool leest de tags, past omitempty en - toe, gaat om met nil pointers en levert JSON die precies overeenkomt met wat json.MarshalIndent zou uitspugen — geen omweg meer via go run.
Hij volgt de echte Go-marshalling semantiek, niet een of andere naïeve vervanging. Geëxporteerde veldnamen worden hernoemd op basis van het eerste deel van de json tag. omitempty gooit zero values weg (lege string, 0, false, nil, lege slice/map). Een tag - haalt het veld eruit. Embedded (anonieme) struct-velden worden gepromoveerd zoals encoding/json dat doet. time.Time komt eruit als RFC 3339-string in een RFC 8259-compatibel formaat, en byte slices ([]byte) worden base64-encoded.
Numerieke types volgen de Go-regels: float64 behoudt zijn precisie, int/int64 blijven getallen, en een nil pointer wordt JSON null. Slices worden JSON arrays; een nil slice wordt ook null (niet []), conform het default-gedrag van Marshal. map[string]V wordt een JSON object. Plak meerdere structs tegelijk — elke instance komt als top-level entry terug.
Zo gebruik je hem
Drie stappen. Werkt voor een klein structje of een compleet <code>types.go</code>-bestand.
Plak je Go (of probeer het voorbeeld)
Gooi de struct-definities plus een composite literal (order := Order{...}) in de linker editor. Een enkele struct, meerdere structs met embedded velden of een declaratie op package-niveau — alles prima. Klik op Voorbeeld laden voor een realistisch beginpunt.
Laat je package-regel en imports gerust staan — de parser negeert ze. Struct tags, method receivers en comments zijn geen probleem. Ter referentie: de encoding/json.Marshal-docs beschrijven elke regel die deze tool volgt. Het Go source repo is een kijkje waard als je op een edge case stuit.
Druk op Converteren
Klik op de groene Converteren-knop. De tool parst de struct-definities, resolvet het composite literal, past de tag-regels toe en produceert ingesprongen JSON.
Kopieer de JSON
Het rechter paneel vult zich met JSON die klaar is voor een API-request, een testtabel, een config-bestand of een fixture die je met os.ReadFile laadt.
Wanneer dit echt handig is
HTTP handler request/response samples
Je hebt een request- of response-struct voor een <code>net/http</code>- of <code>gin</code>-handler. Plak hem met een literal en je hebt een JSON-body die je met curl kan versturen of in Postman kan plakken.
Fixtures voor table-driven tests
Zet een struct-instance uit een table test om in een standalone JSON-bestand voor golden-file testing of externe tooling.
Kubernetes CRDs en manifests
Zet een Go struct die een custom resource of controller payload voorstelt om in de JSON-vorm die <code>kubectl apply</code> of de Kubernetes API gebruikt.
Kafka / NATS / gRPC-gateway messages
Serialiseer een Go message-struct naar JSON voor producer-tests, sample payloads of documentatie, zonder de hele pipeline op te tuigen.
Veelgestelde vragen
Respecteert hij de json struct tag?
Ja. De eerste tag-waarde hernoemt het veld, omitempty gooit zero values weg, en - sluit het veld volledig uit. Dat komt overeen met de regels uit de encoding/json Marshal-reference.
Hoe worden time.Time en []byte afgehandeld?
time.Time wordt geformatteerd als RFC 3339 (bv. "2026-03-14T10:30:00Z"), net als time.Time.MarshalJSON. []byte wordt base64-encoded als JSON string — dat is wat de standard library standaard doet.
En nil pointers en nil slices?
Een nil pointer wordt JSON null. Een nil slice wordt ook null (niet []) — het Go-default. Wil je een lege array, initialiseer de slice dan met []T{}.
Worden velden van embedded (anonieme) structs gepromoveerd?
Ja. Velden van een embedded struct worden platgeslagen in het buitenste object, tenzij de embedded struct zelf een json tag heeft — zelfde regels als encoding/json toepast.
Kan ik een heel bestand met meerdere structs plakken?
Ja. Elk struct-type dat een instance heeft in wat je plakt, komt als een eigen entry in de JSON. Geneste struct-types worden inline uitgeklapt op de plek waar ze gebruikt worden.
Wordt mijn code ergens opgeslagen?
De code gaat naar de backend om geconverteerd te worden en wordt niet bewaard of gelogd. Zoals met elke online tool: check gevoelige code nog even voor je hem plakt.
Andere tools die je nodig kan hebben
Go naar JSON is één puzzelstukje. Deze passen er goed bij: