</>
Plan du cours — 40/66

serde — sérialisation / désérialisation

Intermédiaire

La 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)?;