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
GeneratedRust
Paste or type JSON
JSON → serde struct · Local · No upload

JSON to Rust Serde Struct Generator

Sample JSON → serde struct · derive · Option · rename

🔒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 Serde Structs|derive(Serialize, Deserialize)|Option/rename_all|Runs Locally

Generate Serde Structs

Nested objects split into structs, ready to (de)serialize.

derive Macros

Adds derive(Serialize, Deserialize) automatically.

Option & rename

Optional/nullable use Option types; serde rename when keys aren't snake.

Correct Types

Infers i64/f64/String/bool/Vec — compiles as-is.

Runs Locally — No Upload

Generation runs in your browser; data is never uploaded.