Advertisement728 × 90 — Leaderboard
Advertisement320 × 50 — Mobile banner

JSON a Rust

Genera structs Rust con derives serde desde cualquier JSON
Sesión restaurada de tu última visita
También necesitas:Formateador JSONJSON a Go StructJSON a TypeScript
Advertisement — Fullscreen
Entrada
Salida
Entrada
AdvertisementResponsive
Salida
Listo0 chars0 lines
Advertisement728 × 90

Acerca de JSON a Rust

Pega un objeto JSON y obtén definiciones de struct Rust con #[derive(Serialize, Deserialize)] al instante.

Preguntas frecuentes

¿Qué es la generación de structs Rust desde JSON?
La generación de structs Rust desde JSON analiza una muestra de JSON y produce definiciones de structs Rust con macros derive de serde Deserialize y Serialize. Se añaden atributos #[serde(rename)] cuando el nombre del campo Rust difiere de la clave JSON.
¿Qué crates debo añadir a Cargo.toml para la deserialización de JSON con serde?
Añade serde = { version = "1", features = ["derive"] } y serde_json = "1" a tu sección [dependencies]. La característica derive habilita los macros #[derive(Deserialize, Serialize)]. Ejecuta cargo build y la struct generada con esos derives deserializará JSON mediante serde_json::from_str(&json_string).unwrap().
¿Cómo gestiona serde los campos JSON opcionales o ausentes en Rust?
Los campos tipados como Option<T> se establecen en None cuando la clave está ausente o el valor es null en el JSON. Los campos tipados como T (no opcionales) provocan un error de deserialización si están ausentes. Usa #[serde(default)] para recurrir a la implementación Default del tipo en lugar de lanzar un error en claves ausentes.
¿Cómo renombro campos camelCase de JSON a campos snake_case de Rust?
Añade #[serde(rename_all = "camelCase")] a nivel de struct para mapear automáticamente todas las claves camelCase del JSON a campos snake_case de Rust. Para campos individuales, usa #[serde(rename = "claveOriginal")]. El generador añade atributos de renombrado por campo de forma predeterminada; sustitúyelos por rename_all para un código más limpio si todas las claves siguen la misma convención.
¿Puedo derivar tanto Serialize como Deserialize en la misma struct de Rust?
Sí. #[derive(Serialize, Deserialize)] añade ambas direcciones con una sola línea. Esto significa que la struct puede usarse tanto para decodificar JSON entrante (from_str) como para codificar JSON saliente (to_string). Añade también los derives Clone y Debug para un uso ergonómico en la mayoría de las aplicaciones.
Advertisement300 × 250
Advertisement300 × 250
Ad
AdvertisementSticky banner