Rust:
Praca z JSON
Jak to zrobić:
Aby pracować z JSON w Rust, intensywnie używa się skrzynki serde
wraz z serde_json
do serializacji i deserializacji. Najpierw upewnij się, że dołączysz te do swojego Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Przykład 1: Deserializacja JSON do struktury Rust
Zdefiniuj strukturę Rust i użyj makr pochodnych dla Deserialize
i 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!("ID użytkownika: {}", user.id);
println!("Nazwa użytkownika: {}", user.name);
println!("Email użytkownika: {}", user.email);
}
Wyjście:
ID użytkownika: 1
Nazwa użytkownika: Jane Doe
Email użytkownika: [email protected]
Przykład 2: Serializacja struktury Rust do JSON
Używając tej samej struktury User
:
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);
Wyjście:
{"id":1,"name":"Jane Doe","email":"[email protected]"}
Te przykłady demonstrują podstawowy przepływ deserializacji JSON do struktur Rust i serializacji struktur Rust z powrotem do łańcuchów JSON. Serde dostarcza bogaty zestaw narzędzi do pracy z JSON, w tym obsługę pól opcjonalnych, złożone zagnieżdżenia i typy nieobsługiwane bezpośrednio przez JSON.