Rust:
Arbeiten mit JSON

Wie:

Um mit JSON in Rust zu arbeiten, wird die serde-Crate zusammen mit serde_json für die Serialisierung und Deserialisierung umfassend genutzt. Zuerst stellen Sie sicher, dass diese in Ihrer Cargo.toml enthalten sind:

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

Beispiel 1: Deserialisieren von JSON zu einer Rust-Struktur

Definieren Sie eine Rust-Struktur und verwenden Sie Derive-Makros für Deserialize und 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!("Benutzer-ID: {}", user.id);
    println!("Benutzername: {}", user.name);
    println!("Benutzer-E-Mail: {}", user.email);
}

Ausgabe:

Benutzer-ID: 1
Benutzername: Jane Doe
Benutzer-E-Mail: [email protected]

Beispiel 2: Serialisieren einer Rust-Struktur zu JSON

Unter Verwendung derselben 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);

Ausgabe:

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

Diese Beispiele demonstrieren den grundlegenden Ablauf des Deserialisierens von JSON in Rust-Strukturen und des Serialisierens von Rust-Strukturen zurück in JSON-Strings. Serde bietet einen umfangreichen Satz an Werkzeugen für die Arbeit mit JSON, einschließlich des Umgangs mit optionalen Feldern, komplexer Verschachtelung und Typen, die nicht direkt von JSON unterstützt werden.