Rust:
Arbeta med JSON

Hur man gör:

För att arbeta med JSON i Rust används serde-craten tillsammans med serde_json för serialisering och deserialisering flitigt. Börja med att inkludera dessa i din Cargo.toml:

[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

Exempel 1: Deserialisera JSON till en Rust-struktur

Definiera en Rust-struktur och använd makron för Deserialize och Serialize:

use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize)]
struct User {
    id: u32,
    name: String,
    email: String,
}

fn main() {
    let json_data = r#"
        {
            "id": 1,
            "name": "Jane Doe",
            "email": "[email protected]"
        }
    "#;

    let user: User = serde_json::from_str(json_data).unwrap();

    println!("Användar-ID: {}", user.id);
    println!("Användarnamn: {}", user.name);
    println!("Användaremail: {}", user.email);
}

Utskrift:

Användar-ID: 1
Användarnamn: Jane Doe
Användaremail: [email protected]

Exempel 2: Serialisera en Rust-struktur till JSON

Med samma User-struktur:

let user = User {
    id: 1,
    name: "Jane Doe".to_string(),
    email: "[email protected]".to_string(),
};

let json_data = serde_json::to_string(&user).unwrap();

println!("{}", json_data);

Utskrift:

{"id":1,"name":"Jane Doe","email":"[email protected]"}

Dessa exempel demonstrerar det grundläggande flödet av deserialisering av JSON till Rust-strukturer och serialisering av Rust-strukturer tillbaka till JSON-strängar. Serde erbjuder en rik uppsättning verktyg för att arbeta med JSON, inklusive hantering av valfria fält, komplex nästling och typer som inte direkt stöds av JSON.