Rust:
Trabajando con JSON
Cómo hacerlo:
Para trabajar con JSON en Rust, se utiliza ampliamente el crate serde
junto con serde_json
para la serialización y deserialización. Primero, asegúrate de incluir estos en tu Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Ejemplo 1: Deserializar JSON a una Estructura de Rust
Define una estructura de Rust y usa las macros derivadas para Deserialize
y Serialize
:
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
struct Usuario {
id: u32,
nombre: String,
email: String,
}
fn main() {
let datos_json = r#"
{
"id": 1,
"nombre": "Jane Doe",
"email": "[email protected]"
}
"#;
let usuario: Usuario = serde_json::from_str(datos_json).unwrap();
println!("ID del Usuario: {}", usuario.id);
println!("Nombre del Usuario: {}", usuario.nombre);
println!("Correo Electrónico del Usuario: {}", usuario.email);
}
Salida:
ID del Usuario: 1
Nombre del Usuario: Jane Doe
Correo Electrónico del Usuario: [email protected]
Ejemplo 2: Serializar una Estructura de Rust a JSON
Usando la misma estructura Usuario
:
let usuario = Usuario {
id: 1,
nombre: "Jane Doe".to_string(),
email: "[email protected]".to_string(),
};
let datos_json = serde_json::to_string(&usuario).unwrap();
println!("{}", datos_json);
Salida:
{"id":1,"nombre":"Jane Doe","email":"[email protected]"}
Estos ejemplos demuestran el flujo básico de deserialización de JSON en estructuras de Rust y la serialización de estructuras de Rust de vuelta a cadenas JSON. Serde proporciona un rico conjunto de herramientas para trabajar con JSON, incluyendo el manejo de campos opcionales, anidamientos complejos y tipos no directamente soportados por JSON.