Rust:
Werken met JSON
Hoe te:
In Rust zijn de serde
en serde_json
crates de go-to bibliotheken voor werk met JSON. Hier is hoe je ze gebruikt:
Voeg eerst afhankelijkheden toe in Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Importeer vervolgens de crates en definieer een struct om je gegevens te vertegenwoordigen:
extern crate serde;
extern crate serde_json;
#[macro_use]
extern crate serde_derive;
#[derive(Serialize, Deserialize, Debug)]
struct Gebruiker {
id: u64,
naam: String,
email: String,
}
fn main() {
// Serialiseren
let gebruiker = Gebruiker {
id: 1,
naam: "Jane Doe".to_string(),
email: "[email protected]".to_string(),
};
let j = serde_json::to_string(&gebruiker).unwrap();
println!("{}", j); // {"id":1,"naam":"Jane Doe","email":"[email protected]"}
// Deserialiseren
let e: Gebruiker = serde_json::from_str(&j).unwrap();
println!("{:?}", e); // Gebruiker { id: 1, naam: "Jane Doe", email: "[email protected]" }
}
Diepgang:
Het serde
bibliotheeksysteem is sinds de release in 2015 de de facto oplossing van Rust voor serialisatie. Het ondersteunt veel formaten naast JSON. Afwisselend kun je json-rust
of simd-json
tegenkomen, die verschillende prestatieafwegingen bieden. Een cruciaal implementatiedetail om te begrijpen is dat serde
deserialisatie vereist dat gegevensstructuren bekend zijn op compileertijd, wat niet het geval is bij meer dynamische talen zoals JavaScript.
Zie Ook:
- Serde’s officiële documentatie biedt een uitgebreide handleiding: Serde Documentatie
- De onderliggende details van de
serde_json
crate: serde_json Crate - Meer over JSON zelf: Introductie van JSON
- Voor asynchroon programmeren met JSON worden
tokio
enasync-std
vaak gebruikt in combinatie metserde_json
.