Convertir JSON a Rust Struct
Genera structs de Rust con serde desde JSON, gratis, en tu navegador.
Para qué sirve
De JSON a Rust Struct con serde
Compatible con serde ecosystem
Genera structs listos para usar con serde_json, reqwest, Actix-web, Axum y cualquier crate del ecosistema Rust.
100% privado
Tu JSON nunca sale de tu navegador. Sin registro, sin telemetría, sin envío a servidores.
Convenciones Rust correctas
snake_case automático, Option<T> para nullables, tipos numéricos correctos (i64, f64). Código idiomático.
Instantáneo
Structs generados en tiempo real. Sin botones, sin esperas, sin límites.
Cómo funciona
Tres pasos, sin complicaciones
Pega tu JSON
Pega el JSON que quieres modelar. Puede ser un objeto anidado, un array o cualquier estructura JSON válida.
Generación instantánea
La herramienta genera structs de Rust con las derivaciones de serde automáticamente, respetando las convenciones de snake_case.
Copia el código
Copia el código generado y añade la dependencia serde en tu Cargo.toml para usarlo directamente.
Preguntas frecuentes
¿Tienes dudas?
serde (serialization/deserialization) es el framework de serialización más popular del ecosistema Rust. Permite convertir structs de Rust a y desde formatos como JSON, YAML, TOML, MessagePack, CBOR y muchos más. La clave de serde es que usa macros en tiempo de compilación, lo que significa cero overhead en tiempo de ejecución: el código generado es tan eficiente como si hubieras escrito la serialización manualmente.
El macro #[derive(Serialize, Deserialize)] en Rust instruye al compilador para generar automáticamente la implementación de los traits Serialize y Deserialize de serde para el struct. Esto elimina la necesidad de escribir código de serialización manualmente. Es equivalente a implementar una interfaz, pero el código se genera en tiempo de compilación mediante macros procedurales.
snake_case es la convención oficial de nomenclatura de Rust para variables, campos de structs y funciones (definida en el Rust API Guidelines). Sin embargo, las APIs REST suelen devolver JSON en camelCase. serde maneja esta discrepancia automáticamente con el atributo #[serde(rename_all = "camelCase")] a nivel de struct, o con #[serde(rename = "fieldName")] por campo individual.
En Rust no existe null — en su lugar se usa el tipo Option<T>, que puede ser Some(valor) o None. Cuando un campo JSON puede ser null o estar ausente, el tipo correspondiente en Rust es Option<T>, por ejemplo Option<String> o Option<i64>. serde deserializa automáticamente null como None y omite los campos con None al serializar (con #[serde(skip_serializing_if = "Option::is_none")]).
Añade estas líneas a tu Cargo.toml: serde = { version = "1.0", features = ["derive"] } y serde_json = "1.0". La feature "derive" activa los macros #[derive(Serialize, Deserialize)]. serde_json proporciona las funciones serde_json::from_str() para deserializar y serde_json::to_string() para serializar. Estos son los crates más descargados del ecosistema Rust.
Rust como lenguaje más amado en Stack Overflow, el ecosistema serde y WebAssembly con Rust
Rust ha sido votado como el lenguaje de programación más amado (most loved) en la Stack Overflow Developer Survey durante 9 años consecutivos (2016–2024). Esta popularidad se debe a su propuesta única: seguridad de memoria sin recolector de basura (garbage collector), rendimiento comparable a C/C++, y un sistema de tipos que previene en tiempo de compilación clases enteras de bugs como null pointer dereferences, data races y buffer overflows. Cada vez más proyectos en sistemas críticos, CLIs y servicios de alto rendimiento migran a Rust.
serde es el pilar de la serialización en Rust. Con más de 300 millones de descargas en crates.io, es una de las dependencias más ubicuas del ecosistema. Lo que hace especial a serde es su arquitectura de data model agnóstico al formato: los structs se implementan una sola vez contra el data model abstracto de serde, y los formatos (JSON, YAML, TOML, Bincode, MessagePack, etc.) implementan su propio adaptador. Esto significa que cambiar de JSON a MSGPACK en un proyecto Rust a menudo es tan simple como cambiar un crate.
WebAssembly (Wasm) es otra área donde Rust brilla. Con wasm-bindgen y wasm-pack, puedes compilar código Rust a WebAssembly y ejecutarlo en el navegador con rendimiento cercano al nativo. serde_json funciona en targets Wasm sin cambios. Proyectos como Figma (su motor de renderizado), Cloudflare Workers, y partes de Firefox están escritos en Rust. La herramienta en convertir.ai usa tecnología similar: procesamiento en el cliente sin enviar datos al servidor.