Omnikit
DesarrolloArchivosDineroTodas las herramientas
Ctrl K
Herramientas de desarrolloHerramientas de archivosCalculadoras financierasTodas las herramientas
InicioHerramientas para desarrolladoresConvertidor de JSON a structs de Rust
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Convertidor de JSON a structs de Rust

desarrollo

Convierta una muestra JSON en structs de Rust con derives de serde, renombres, Option y Vec

Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio. Comprobado el 16 de octubre de 2026.

Pegue una muestra JSON y obtenga structs de Rust con los derives Serialize y Deserialize de serde. Los números enteros pasan a i64 y cualquier decimal convierte el campo en f64; un valor null o ausente en algunos objetos pasa a Option<T>, y las claves escritas distinto de su campo snake_case reciben un rename de serde, 1 rename_all cuando todas están en camelCase.

Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés

Siguiente:
  • JSON a TypeScript Genere interfaces o tipos de TypeScript a partir de una muestra JSON
  • Formateador y validador JSON Formatee, valide, minifique y ordene JSON con la posición exacta de cada error

Cómo convertir JSON en un struct de Rust

1

Pegue una muestra JSON, por ejemplo la respuesta de una API, en el cuadro de la izquierda.

2

Los structs de Rust aparecen mientras escribe, cada uno con #[derive(Serialize, Deserialize)], campos en snake_case y los renombres de serde que necesitan.

3

Active Option en cada campo o PartialEq si los quiere, y ponga el nombre del struct raíz.

4

Pulse Copiar, o Descargar para guardar models.rs, y añada serde (con la feature derive) y serde_json a Cargo.toml.

Acerca del Convertidor de JSON a structs de Rust

Rust decodifica JSON con serde, y cada objeto necesita un struct cuyos campos tengan los tipos correctos y cuyos nombres correspondan a las claves JSON. Este convertidor escribe esos structs a partir de una muestra, así que una respuesta de API larga se convierte en Rust que compila con un solo pegado.

Cómo se eligen los tipos.

Valor JSON Tipo Rust
"text" String
true / false bool
42 (solo números enteros) i64
4.5 (si aparece algún decimal) f64
null, y además un tipo Option
solo null, o tipos mezclados serde_json::Value
[ ... ] Vec<...>
{ } vacío Map<String, Value>
{ ... } un struct propio

Claves ausentes. Todos los objetos de un array se fusionan en un struct. Una clave que algunos omiten pasa a ser un Option, porque serde trata un Option ausente como None y cualquier otro campo ausente como un error. Esos campos reciben además skip_serializing_if, de modo que al volver a escribir el struct se omiten de nuevo.

Nombres. Los campos van en snake_case. Cuando cada clave es simplemente la forma camelCase de su campo, el struct lleva un único rename_all; si no, cada campo distinto recibe su propio rename. Las palabras clave pasan a identificadores raw como r#type; self, super y crate no pueden ser raw, así que pasan a self_ con un rename.

Opciones. Option en cada campo sirve para APIs que pueden omitir cualquier clave. Derivar PartialEq permite a las pruebas comparar valores. El struct raíz se llama Root salvo que le ponga otro nombre.

Cada resultado se comprobó leyendo de nuevo el Rust con las reglas de serde y decodificando 9 muestras con él. Nada de lo que pegue sale del navegador.

Preguntas frecuentes

¿Cómo convierto JSON en un struct de Rust?

Pegue una muestra JSON en el convertidor y los structs de Rust aparecen al lado, cada uno derivando Serialize y Deserialize. Añada serde con la feature derive y serde_json a Cargo.toml, pegue los structs en un módulo y decodifique con serde_json::from_str::<Root>(&text).

¿Cuándo un campo pasa a ser Option<T>?

Un campo pasa a Option cuando la muestra lo tiene en null, o cuando algunos objetos de un array omiten la clave. Serde decodifica una clave ausente en un Option como None, mientras que cualquier otro campo ausente es un error, así que Option es lo que permite al struct aceptar cada objeto de la muestra.

¿Cómo se asignan las claves JSON en camelCase a campos snake_case?

Los campos se escriben en snake_case, como pide el estilo de Rust. Cuando cada clave es la forma camelCase de su campo, el struct recibe un único #[serde(rename_all = "camelCase")]; si no, cada campo escrito distinto recibe su propio #[serde(rename = "key")], así que claves como first-name o 2fa también se decodifican.

¿Por qué i64 y f64 en lugar de i32 o f32?

JSON no dice hasta dónde puede crecer un número, así que i64 es el tipo entero seguro y f64 coincide con la doble precisión con que se leen los números JSON. Un campo pasa a f64 en cuanto algún valor de la muestra tiene parte decimal, porque serde se niega a leer 4.5 en un entero.

¿Qué pasa con una clave llamada type o match?

Las palabras clave se escriben como identificadores raw, como r#type, y serde quita el r# al compararlo con la clave, así que no hace falta rename. Las cuatro palabras clave que no pueden ser raw, self, Self, super y crate, pasan a self_ y similares, con un rename de vuelta a la clave original.

¿Se sube mi JSON?

No. La conversión se hace en su navegador sin ninguna petición a un servidor, y el JSON no se guarda, así que las respuestas de API con tokens o datos personales se quedan en su dispositivo. Cierre la pestaña y no queda nada.

Fuentes

  • serde, field attributesrename and skip_serializing_if on a field
  • serde, container attributesrename_all = "camelCase" on a struct
  • The Rust Reference, keywords and raw identifiersWhich names need r#, and the four that cannot be raw
  • Rust API Guidelines, namingUpperCamelCase types, snake_case fields

Última verificación: 16 de octubre de 2026.

Los tipos y las normas cambian; consulte la fuente antes de fiarse de una cifra.

¿Sigue sin resolverlo? Pregunte sobre Convertidor de JSON a structs de Rust y cualquiera que lo sepa puede responder. No se necesita cuenta.

Herramientas relacionadas

Todas las herramientas para desarrolladores
Codificar y decodificar Base64Texto y archivos a Base64 y de vuelta, con modo seguro para URL y vista previa de imágenesConversor de timestamp UnixDe timestamps Unix a fechas y de fechas a timestamps, en cualquier zona horariaJSON a TypeScriptGenere interfaces o tipos de TypeScript a partir de una muestra JSONConvertir CSV a JSONConvierta CSV a JSON y JSON a CSV, con una vista previa en tablaConvertir YAML a JSONConvierta YAML a JSON y JSON a YAML, con los anclajes resueltosCodificador y decodificador de URLCodifique o decodifique texto y URL con codificación porcentual y vea cada parte de un enlaceConversor de coloresHEX, RGB, HSL, HWB, OKLCH y CMYK en ambos sentidos, con comprobación de contrasteConversor de bases numéricasBinario, octal, decimal, hexadecimal y cualquier base hasta 36, exacto a cualquier tamaño, con complemento a dos
¿Le ha resultado útil esta herramienta?
Omnikit

Tareas pequeñas, hechas en su navegador. Gratis, rápido y privado. Los archivos nunca se suben.

Archivos

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Desarrollo

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Dinero

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuíasPreguntasAcerca deCómo verificamosBiblioteca de leyes (beta)PrivacidadCondicionesDivulgaciónContactoMore: Exam practice (UGC NET Paper 1)Se ejecuta en su navegador. No se sube nada. © 2026 Omnikit (theomnikit.com)