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_jsoncrate: serde_json Crate - Meer over JSON zelf: Introductie van JSON
- Voor asynchroon programmeren met JSON worden
tokioenasync-stdvaak gebruikt in combinatie metserde_json.