Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

JSON serialize struct

Cargo.toml

[package]
name = "json-serialize-struct"
version = "0.1.0"
edition = "2021"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

Code

use serde::Serialize;

#[derive(Debug, Serialize)]
#[allow(dead_code)]
struct Thing {
    name: String,
    number: i8,
    numbers: Vec<i32>,
}

fn main() {
    let thing = Thing {
        name: String::from("Foo Bar"),
        number: 42,
        numbers: vec![23, 19],
    };
    println!("{:#?}", &thing);
    let serialized = serde_json::to_string(&thing).unwrap();
    println!("{serialized}");
}

Output

Thing {
    name: "Foo Bar",
    number: 42,
    numbers: [
        23,
        19,
    ],
}
{"name":"Foo Bar","number":42,"numbers":[23,19]}