Rust:
Työskentely JSON:n kanssa
Kuinka:
JSONin käsittelyyn Rustissa käytetään laajalti serde
-pakettia yhdessä serde_json
in 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 Deserialize
lle ja Serialize
lle:
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.