Rust:
Arbeider med JSON
Hvordan:
For å arbeide med JSON i Rust, er serde
-craten sammen med serde_json
for serialisering og deserialisering omfattende brukt. Først, sørg for å inkludere disse i din Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Eksempel 1: Deserialisere JSON til en Rust Struct
Definer en Rust struct og bruk derive-makroer for Deserialize
og Serialize
:
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
struct Bruker {
id: u32,
navn: String,
epost: String,
}
fn main() {
let json_data = r#"
{
"id": 1,
"navn": "Jane Doe",
"epost": "[email protected]"
}
"#;
let bruker: Bruker = serde_json::from_str(json_data).unwrap();
println!("Bruker ID: {}", bruker.id);
println!("Bruker Navn: {}", bruker.navn);
println!("Bruker Epost: {}", bruker.epost);
}
Output:
Bruker ID: 1
Bruker Navn: Jane Doe
Bruker Epost: [email protected]
Eksempel 2: Serialisere en Rust Struct til JSON
Ved å bruke den samme Bruker
-structen:
let bruker = Bruker {
id: 1,
navn: "Jane Doe".to_string(),
epost: "[email protected]".to_string(),
};
let json_data = serde_json::to_string(&bruker).unwrap();
println!("{}", json_data);
Output:
{"id":1,"navn":"Jane Doe","epost":"[email protected]"}
Disse eksemplene demonstrerer den grunnleggende flyten av deserialisering av JSON til Rusts strukturer og serialisering av Rusts strukturer tilbake til JSON-strenger. Serde tilbyr et rikt sett med verktøy for å arbeide med JSON, inkludert å håndtere valgfrie felt, kompleks nesting og typer som ikke er direkte støttet av JSON.