Rust:
Lavorare con JSON
Come fare:
Per lavorare con JSON in Rust, si utilizza estensivamente la crate serde
insieme a serde_json
per la serializzazione e deserializzazione. Prima di tutto, assicurati di includerle nel tuo Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Esempio 1: Deserializzare JSON in una Struct Rust
Definisci una struct Rust e usa le macro derive per Deserialize
e 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 Utente: {}", user.id);
println!("Nome Utente: {}", user.name);
println!("Email Utente: {}", user.email);
}
Output:
ID Utente: 1
Nome Utente: Jane Doe
Email Utente: [email protected]
Esempio 2: Serializzare una Struct Rust in JSON
Utilizzando la stessa struct 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);
Output:
{"id":1,"name":"Jane Doe","email":"[email protected]"}
Questi esempi dimostrano il flusso di base per deserializzare JSON in strutture Rust e serializzare strutture Rust di nuovo in stringhe JSON. Serde offre un ricco insieme di strumenti per lavorare con JSON, incluso il trattamento di campi opzionali, nidificazioni complesse e tipi non direttamente supportati da JSON.