serde — sérialisation / désérialisation
IntermédiaireLa crate incontournable : convertit vos structs vers/depuis JSON, TOML, YAML, etc.
cargo add serde -F derive
cargo add serde_json
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
struct Utilisateur {
id: u32,
nom: String,
#[serde(rename = "emailAddress")]
email: String,
#[serde(default)]
actif: bool,
#[serde(skip_serializing_if = "Option::is_none")]
telephone: Option<String>,
}
let json = r#"{"id":1,"nom":"Alice","emailAddress":"a@b.fr"}"#;
let u: Utilisateur = serde_json::from_str(json)?;
let texte = serde_json::to_string_pretty(&u)?;