Ga naar inhoud
100% lokaal

JSON naar Go-struct

Zet een JSON-voorbeeld om in Go-structuurdefinities met afgeleid typen en tags.

Invoer
Uitvoer

JSON naar Go-struct

Plak een JSON-voorbeeld en dit hulpmiddel genereert overeenkomstige Go-structuurdefinities met json-tags. Het bepaalt int, float64, string, bool en null voor elk veld, maakt benoemde of ingesloten structuren voor geneste objecten en bepaalt slice-typen voor arrays — inclusief slices van objecten die hun eigen herbruikbare struct hebben.

Opties vormen de gegenereerde code. Noem de root-structuur zelf of laat het hulpmiddel dit afleiden. Kies hoe tags worden geschreven — behoud de originele sleutel of zet deze onafhankelijk van de naam van het originele veld om naar snake_case of camelCase. Schakel "omitempty toevoegen" in om het aan elke tag toe te voegen, en "Pointers voor optionele velden" om velden die ontbreken of null zijn in delen van het voorbeeld met een pointertype te markeren. Wanneer array-objecten iets andere velden hebben, "Array-element vormen samenvoegen" combineert ze in één struct met extra velden als optioneel gemarkeerd, in plaats van het elementtype op te geven. Kies voor waarden die het hulpmiddel niet kan bepalen, interface{}, de alias any of json.RawMessage voor uitgestelde decodering.

Dit is de stap voordat u een API-client of config-loader in Go schrijft: plak een echte reactie of config-voorbeeld en krijg een eerste struct in plaats van handmatig veldnamen en tags in te typen. Geneste structuren kunnen als aparte benoemde typen voor hergebruik elders in het pakket blijven, of inline worden weergegeven wanneer een vorm slechts eenmaal wordt gebruikt. Voor velden waarvan de tag niet meer overeenkomt met de originele JSON-sleutel is een opmerking met de originele sleutel beschikbaar.

Alles wordt lokaal in uw browser uitgevoerd — de JSON die u plakt, die echte API-reacties of interne config kan bevatten, wordt nooit geüpload. Kopieer het resultaat, download het als .txt-bestand of verplaats de uitvoer terug naar de invoer om het voorbeeld te verfijnen en opnieuw te genereren.

FAQ

Verwerkt het geneste objecten en arrays?
Ja. Geneste objecten worden hun eigen benoemde struct (of een ingesloten anonieme als u deze inschakelt), arrays worden slices, en een slice van objecten hergebruikt één struct wanneer elk element dezelfde vorm heeft.
Wat gebeurt er als array-objecten niet allemaal dezelfde velden hebben?
Met "Array-element vormen samenvoegen" ingeschakeld (standaard) combineert het hulpmiddel elk veld dat het in de elementen ziet in één struct, waarbij velden die in sommige elementen ontbreken als optioneel worden gemarkeerd. Schakel dit uit en het hulpmiddel valt terug op een dynamisch elementtype.
Kan ik controleren hoe JSON-tags worden benoemd?
Ja, met de optie JSON-tag-indeling: behoud de originele sleutel precies zoals deze in het voorbeeld voorkomt, of zet elke sleutel om naar snake_case of camelCase.
Welk type krijg ik voor een veld dat het hulpmiddel niet kan bepalen?
interface{}, de alias any of json.RawMessage, afhankelijk van de optie die u kiest — RawMessage is nuttig wanneer u dit veld later zelf wilt decoderen.
Wordt mijn JSON ergens geüpload?
Nee. Struct-generatie wordt volledig in uw browser uitgevoerd — de JSON die u plakt, verlaat uw apparaat nooit.