How do I use serde for serialization and deserialization in Rust?

Walkthrough

  1. Add serde and serde_derive to Cargo.toml:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"
  1. Use #[derive(Serialize, Deserialize)] on your struct:
use serde::{Serialize, Deserialize};
 
#[derive(Serialize, Deserialize)]
struct Config {
    timeout: u64,
    enabled: bool,
}
  1. Serialize/deserialize with serde_json:
let data = serde_json::to_string(&Config { timeout: 30, enabled: true }).unwrap();
let parsed: Config = serde_json::from_str(&data).unwrap();

Summary

Serde provides macros for automatic serialization/deserialization. Use #[derive(Serialize, Deserialize)] and choose a format crate like serde_json for JSON handling.