JSON a Rust
Genera structs de Rust con atributos de Serde a partir de JSON
Pega JSON o carga un ejemplo para generar código Rust.
Qué genera JSON a Rust
JSON a Rust convierte una respuesta de API o cualquier muestra JSON en structs de Rust. Con Serde activado, cada struct deriva Serialize y Deserialize. El renombrado automático comprueba las propias reglas de mayúsculas de Serde y añade #[serde(rename_all = "camelCase")] (u otra regla) solo cuando reproduce todas las claves de ese struct; las claves que no encajan reciben #[serde(rename = "...")]. Los campos opcionales reciben #[serde(default, skip_serializing_if = "Option::is_none")] para que sigan ausentes al volver a escribirse.
Cómo usarlo
- 1.Pega JSON, sube o suelta un archivo .json, o carga uno de los ejemplos.
- 2.Define el nombre del struct raíz y elige los derives Debug, Clone y Serde.
- 3.Elige el renombrado automático, una regla fija o solo renombrados por campo.
- 4.Lee las notas bajo la salida y luego copia el código o descarga models.rs.
Cómo se infieren los tipos
- •Se revisan todos los elementos de cada array, no solo el primero, y los objetos del mismo array se combinan.
- •Una clave que falta en algunos objetos es opcional; una clave que a veces es null es anulable. Ambos casos se distinguen.
- •1 y 2.5 en la misma posición se amplían a número decimal; las demás mezclas se notifican.
- •Los arrays vacíos y los valores que solo son null no aportan información de tipo, así que se usa un tipo genérico y una nota explica el motivo.
- •Correspondencia de tipos: cadena → String, entero → i64 (u64 o serde_json::Value más allá), decimal → f64, booleano → bool, array → Vec<T>, objeto → struct, ausente o null → Option<T>, desconocido o mixto → serde_json::Value.
Límites y privacidad
Una muestra refleja cómo eran los datos en un momento, no el contrato completo de la API. Revisa los campos opcionales, los tipos genéricos y el tamaño de los números antes de confiar en el código. La entrada se limita a 5 MB y 256 niveles de anidación; a partir de 2 MB, la generación espera al botón Generar. Todo se ejecuta en tu navegador y el JSON nunca se sube. Los valores genéricos necesitan el crate serde_json aunque los derives de Serde estén desactivados.
