How do I use serde for serialization and deserialization in Rust?
Walkthrough
- Add
serdeandserde_derivetoCargo.toml:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"- Use
#[derive(Serialize, Deserialize)]on your struct:
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct Config {
timeout: u64,
enabled: bool,
}- 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.