Rust:
Travailler avec JSON
Comment faire :
Pour travailler avec le JSON en Rust, on utilise largement le crate serde
ainsi que serde_json
pour la sérialisation et la désérialisation. Tout d’abord, assurez-vous de les inclure dans votre Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Exemple 1 : Désérialiser du JSON vers une structure Rust
Définissez une structure Rust et utilisez les macros derive pour Deserialize
et Serialize
:
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
struct Utilisateur {
id: u32,
nom: String,
email: String,
}
fn main() {
let donnees_json = r#"
{
"id": 1,
"nom": "Jane Doe",
"email": "[email protected]"
}
"#;
let utilisateur: Utilisateur = serde_json::from_str(donnees_json).unwrap();
println!("ID Utilisateur : {}", utilisateur.id);
println!("Nom Utilisateur : {}", utilisateur.nom);
println!("Email Utilisateur : {}", utilisateur.email);
}
Sortie :
ID Utilisateur : 1
Nom Utilisateur : Jane Doe
Email Utilisateur : [email protected]
Exemple 2 : Sérialiser une structure Rust en JSON
En utilisant la même structure Utilisateur
:
let utilisateur = Utilisateur {
id: 1,
nom: "Jane Doe".to_string(),
email: "[email protected]".to_string(),
};
let donnees_json = serde_json::to_string(&utilisateur).unwrap();
println!("{}", donnees_json);
Sortie :
{"id":1,"nom":"Jane Doe","email":"[email protected]"}
Ces exemples démontrent le processus de base pour désérialiser le JSON en structures Rust et pour sérialiser les structures Rust en chaînes JSON. Serde offre un ensemble riche d’outils pour travailler avec le JSON, incluant la gestion des champs optionnels, l’imbrication complexe, et les types non directement supportés par JSON.