Rust:
Trabalhando com JSON
Como fazer:
Para trabalhar com JSON em Rust, a crate serde
junto com serde_json
para serialização e deserialização são extensivamente utilizadas. Primeiro, certifique-se de incluí-los em seu Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Exemplo 1: Deserializar JSON para uma Struct Rust
Defina uma struct Rust e use macros derive para 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 do Usuário: {}", user.id);
println!("Nome do Usuário: {}", user.name);
println!("Email do Usuário: {}", user.email);
}
Saída:
ID do Usuário: 1
Nome do Usuário: Jane Doe
Email do Usuário: [email protected]
Exemplo 2: Serializar uma Struct Rust para JSON
Usando a mesma 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);
Saída:
{"id":1,"name":"Jane Doe","email":"[email protected]"}
Esses exemplos demonstram o fluxo básico de deserializar JSON em estruturas Rust e serializar estruturas Rust de volta em strings JSON. O Serde fornece um rico conjunto de ferramentas para trabalhar com JSON, incluindo o tratamento de campos opcionais, aninhamento complexo e tipos não diretamente suportados pelo JSON.