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

1

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.

2

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.

3

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:

Entrada

Salida Rust generada:

Salida

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.