JSON a Rust
Convertir JSON a structs Rust online. Generar structs compatibles con Serde para desarrollo Rust. Gratis, se ejecuta en tu navegador—sin envío de datos.
Entrada JSON
Salida Rust
¿Qué es JSON a Rust?
Si estás llamando a una REST API en Rust, necesitas definiciones de structs que coincidan antes de poder deserializar nada con Serde. Escribir esos structs a mano — especialmente para JSON profundamente anidado — es tedioso y propenso a errores. Esta herramienta genera automáticamente structs Rust compatibles con Serde. Pega tu JSON, obtén structs listos con #[derive(Serialize, Deserialize)], y añádelos directamente a tu proyecto Cargo.
Esta herramienta genera structs Rust desde tu JSON. Activa Serde para derives Serialize/Deserialize. Activa Option Types para campos opcionales.
La conversión se ejecuta completamente en tu navegador. Tu JSON nunca se envía a un servidor.
Cuándo ayuda JSON a Rust
Al desarrollar apps Rust que consuman APIs REST, necesitas structs tipados.
Cómo usar esta herramienta
Pegar o subir JSON
Copia tu JSON y pégalo en el editor izquierdo. Usa el botón Ejemplo para datos de ejemplo. Configura el nombre del struct y opciones en el panel de configuración.
Revisar los structs generados
El panel derecho muestra los structs Rust generados. Si tu JSON tiene sintaxis inválida, corrígelo primero con el Formateador JSON o el Validador JSON.
Copiar o descargar
Usa Copiar o Descargar para obtener el código. Añade serde y serde_json a tu Cargo.toml. Pégalo en tu proyecto Rust.
Ejemplos de JSON a Rust
Aquí un ejemplo de generación de structs Rust desde un objeto JSON.
Ejemplo: Registro de suscriptor
Entrada JSON:
Salida Rust generada:
Cuándo ayuda JSON a Rust
La mayoría de desarrolladores necesitan esto al integrar con APIs REST.
Para fusionar dos archivos JSON primero, existe la herramienta Combinar JSON.
Las respuestas de API, archivos de configuración o exportaciones de datos suelen ser JSON.
Preguntas frecuentes
¿Cómo deserializo JSON en Rust con Serde?
Añade serde = { version = "1.0", features = ["derive"] } y serde_json = "1.0" a tu Cargo.toml. Deriva Deserialize en tu struct, luego llama serde_json::from_str::<YourStruct>(&json_string). Genera el struct aquí pegando tu JSON.
¿Qué hace #[serde(rename)] en Rust?
#[serde(rename = "jsonKey")] le dice a Serde que mapee una clave JSON específica a un nombre de campo Rust. Útil cuando JSON usa camelCase (como planName) pero tu struct Rust usa snake_case (plan_name). El generador los añade automáticamente cuando es necesario.
¿Cómo manejo campos JSON opcionales o nullable en Rust?
Activa Option Types para envolver campos nullable en Option<T>. Esto significa que los campos JSON ausentes o null se deserializan a None en lugar de causar un error. También puedes añadir #[serde(skip_serializing_if = "Option::is_none")] para omitir campos null al serializar.
¿Se envía mi JSON a un servidor?
No. La generación de structs se ejecuta completamente en tu navegador. Tu JSON nunca sale de tu máquina.
¿Qué pasa con los objetos JSON anidados y arrays?
Los objetos JSON anidados se convierten en structs Rust separados, cada uno con su propio #[derive(Serialize, Deserialize)]. Los arrays se convierten en Vec<T> de esos tipos de struct. El generador maneja profundidad de anidamiento arbitraria.
Herramientas relacionadas
Para JSON en Rust, ver Serde y serde_json. Para JSON, ver la especificación JSON.