Inference rulesNested objects split into separate types; arrays are typed automatically; optional/nullable fields detected; mixed types form unions; null / empty arrays fall back to sane types; identical shapes are deduped and name clashes disambiguated.Max input size: TBD (placeholder)
Sample JSONJSON
Paste or type JSON
GeneratedGo
Paste or type JSON
JSON → struct · Local · No upload

JSON to Go Struct Generator

Sample JSON → struct · Correct types · json tags · omitempty & pointers

🔒Processed locally in your browser — never uploaded or stored

No upload, no storage

JSON is processed in memory and never sent to a server.

Share via URL fragment

Share links encode data in the # anchor — never sent to a server.

Remember last edit

Optionally keep your last input locally; clear it with one click.

Generate Go Structs|Correct Types & json Tags|omitempty & Pointers|Runs Locally

Generate Structs

Nested objects split into separate, exported structs.

Correct Types & json Tags

Infers int/float64/string/bool with a json tag per field.

omitempty & Pointers

Optional fields get omitempty; nullable fields use *T.

Compiles As-Is

Idiomatic Go output — paste in and build.

Runs Locally — No Upload

Generation runs in your browser; data is never uploaded.