DT Dev Tools

JSON naar Go struct converter — Structs genereren

Zet JSON om naar Go-structs met json-tags, omitempty, pointertypen voor optionele velden en unmarshal-helpers. Gratis, direct en privé in je browser.

🔒 Draait volledig in je browser — niets wordt geüpload

Advertentie

Genereer Go-structs uit JSON

Go-structs met de hand schrijven voor een groot API-antwoord is traag en foutgevoelig. Deze JSON naar Go converter doet het direct: plak een JSON-voorbeeld en er worden geëxporteerde structtypen gegenereerd met correct geschreven veldnamen en json-structtags die elk veld terugkoppelen aan de oorspronkelijke sleutel. Geneste objecten worden aparte benoemde structs, arrays worden slices, gehele getallen en kommagetallen worden onderscheiden als int64 en float64, en ISO 8601-tijdstempels worden herkend als time.Time. De uitvoer is zonder verdere aanpassing klaar voor encoding/json.

De tool draait op quicktype, dat elk element van elke array bekijkt voordat het een type kiest. Heeft één item in een lijst een veld dat de andere missen, dan wordt dat veld een pointer, zodat de nulwaarde en de ontbrekende waarde van elkaar te onderscheiden blijven — een detail dat converters met één enkele doorloop vaak verkeerd doen.

Opties die er in Go toe doen

Stel de package-naam in zodat het bestand compileert waar je het neerzet. Schakel omitempty in als je deze structs ook weer naar JSON serialiseert en wilt dat afwezige optionele velden afwezig blijven. Standaard voegt de generator kleine Unmarshal…- en Marshal-hulpfuncties toe rond het roottype; vink Structs only aan als je liever zelf json.Unmarshal aanroept en alleen de typen nodig hebt. Hernoem de rootstruct van Root naar de domeinnaam die je wilt, bijvoorbeeld Repository of WebhookEvent.

Het beste resultaat behalen

Geef de converter een representatief voorbeeld: een array met meerdere elementen, ingevulde optionele velden en gevulde geneste objecten in plaats van lege. Lege arrays en null-waarden geven de inferentie niets om mee te werken en vallen terug op interface{}. Voer na het plakken gofmt uit, controleer numerieke typen waarvan het voorbeeld mogelijk niet het volledige bereik toont, en vervang generieke strings door eigen typen waar je API vaste waarden documenteert. Omdat alle verwerking in je browser gebeurt, verlaten interne gegevens of klantdata je machine nooit.

Hoe te gebruiken

  1. Plak JSONPlak een API-antwoord of een willekeurig JSON-document, of laad het voorbeeld.
  2. Kies optiesStel de naam van de rootstruct en de package in en bepaal of je omitempty en helpers wilt.
  3. Kopieer de structsKopieer de Go-code of download een .go-bestand en voer gofmt uit zoals gebruikelijk.

Veelgestelde vragen

Voegt het json-structtags toe?
Ja. Elk veld krijgt een `json:"key"`-tag die de oorspronkelijke JSON-sleutel behoudt, en met één selectievakje voeg je ,omitempty toe aan optionele velden.
Hoe worden optionele en null-velden behandeld?
Velden die in sommige voorbeelden ontbreken of null zijn, worden pointertypen zoals *string, zodat je een afwezige waarde van een nulwaarde kunt onderscheiden.
Wat doen de hulpfuncties?
Standaard bevat de uitvoer de hulpfuncties UnmarshalRoot en Marshal. Vink Structs only aan om alleen de typedeclaraties te krijgen.
Wordt mijn JSON naar een server gestuurd?
Nee. De conversie draait in je browser met quicktype gecompileerd naar JavaScript; er wordt niets geüpload.
Advertentie