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.