Rust:
Робота з JSON
Як:
Для роботи з JSON у Rust активно використовується крейт serde
разом з serde_json
для серіалізації та десеріалізації. Спочатку переконайтеся, що вони включені до вашого Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Приклад 1: Десеріалізація JSON у Rust Struct
Визначте структуру Rust та використовуйте макроси похідної для Deserialize
та 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 користувача: {}", user.id);
println!("Ім'я користувача: {}", user.name);
println!("Email користувача: {}", user.email);
}
Вивід:
ID користувача: 1
Ім'я користувача: Jane Doe
Email користувача: [email protected]
Приклад 2: Серіалізація Rust Struct у JSON
Використовуючи ту ж структуру 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);
Вивід:
{"id":1,"name":"Jane Doe","email":"[email protected]"}
Ці приклади демонструють базовий потік десеріалізації JSON у структури Rust та серіалізації структур Rust назад у рядки JSON. Serde надає багатий набір інструментів для роботи з JSON, включаючи взаємодію з необов’язковими полями, складною вкладеністю та типами, які не підтримуються JSON безпосередньо.