Rust:
Työskentely JSON:n kanssa

Kuinka:

JSONin käsittelyyn Rustissa käytetään laajalti serde-pakettia yhdessä serde_jsonin kanssa sarjoittamiseen ja jäsentämiseen. Ensin, varmista että sisällytät nämä Cargo.toml-tiedostoosi:

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

Esimerkki 1: Jäsenetään JSON Rust-rakenteeksi

Määrittele Rust-rakenne ja käytä johdannaisia makroja Deserializelle ja Serializelle:

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!("Käyttäjän ID: {}", user.id);
    println!("Käyttäjän nimi: {}", user.name);
    println!("Käyttäjän sähköposti: {}", user.email);
}

Tuloste:

Käyttäjän ID: 1
Käyttäjän nimi: Jane Doe
Käyttäjän sähköposti: [email protected]

Esimerkki 2: Sarjoitetaan Rust-rakenne JSONiksi

Käyttäen samaa User-rakennetta:

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);

Tuloste:

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

Nämä esimerkit havainnollistavat perusprosessin JSONin jäsentämisestä Rust-rakenteiksi ja Rust-rakenteiden sarjoittamisesta takaisin JSON-merkkijonoiksi. Serde tarjoaa runsaan valikoiman työkaluja JSONin käsittelyyn, mukaan lukien valinnaisten kenttien, monimutkaisten pesintöjen ja JSONin suoraan tukemattomien tyyppien käsittelyn.