AZ Tools

JSON to Rust Struct Converter (serde)

Developer

Paste any JSON object or array and get ready-to-use Rust `struct` definitions deriving `Serialize, Deserialize` from serde, with fields mapped to Rust types (String, i64, f64, bool, Vec<...>) and separate structs for nested objects. Keys that aren't snake_case get a `#[serde(rename = "...")]` attribute. Everything runs locally in your browser — your JSON is never uploaded.

Rust structs

How to use

  1. Paste or type your JSON into the input box.
  2. Optionally rename the root struct (defaults to AutoGenerated).
  3. Copy the generated structs from the output box and add serde to your Cargo.toml.

Frequently asked questions

How are numbers typed?
Whole numbers become i64 and numbers with a decimal point become f64. Adjust manually if you need u32, i32 or another width.
What happens with null or empty arrays?
null values map to Option<serde_json::Value> and empty arrays to Vec<serde_json::Value>, since their type can't be inferred from the sample.
Why do some fields have a serde rename?
Rust fields use snake_case. When a JSON key differs (for example camelCase), a #[serde(rename = "...")] attribute is added so serialization still matches the original key.
Is my JSON sent anywhere?
No. Conversion happens entirely in your browser; nothing is uploaded.

Related tools