UTILS.
100% en el navegador
🐹

JSON a struct de Go

Convierte una muestra de JSON en structs de Go tipados con etiquetas json. Infiere int64, float64, bool, structs anidados y slices en tu navegador.

salida

Acerca de esta herramienta

Pega una muestra de JSON y esta herramienta genera structs de Go listos para usar, con etiquetas `json:"field"` para cada clave. Todo se ejecuta localmente en tu navegador, así que tu JSON nunca se sube a ningún sitio.

El generador llama a JSON.parse y recorre el resultado recursivamente: las cadenas se convierten en string, los booleanos en bool, los números enteros en int64 y los números con decimal en float64, null se convierte en interface{}, los arrays se convierten en un slice del tipo del primer elemento ([]interface{} cuando está vacío), y cada objeto se convierte en su propio struct anidado con nombre. Los nombres de campo se convierten a PascalCase exportado (con iniciales comunes como ID y URL en mayúsculas) mientras que la clave original se conserva en la etiqueta json.

Úsalo para arrancar modelos de Go a partir de una respuesta de API o un archivo de configuración, y luego ajusta los tipos a mano donde haga falta. Como JSON no tiene un tipo entero separado, un valor como 1.0 se lee como entero; añade un decimal (1.5) si quieres float64.

Preguntas frecuentes

¿Cómo se tipan los números?
Un valor analizado sin parte fraccionaria se convierte en int64; un valor con decimal se convierte en float64. JSON no puede distinguir 1 de 1.0, así que ambos se leen como int64.
¿Qué ocurre con los objetos y arrays anidados?
Cada objeto se convierte en un struct con nombre separado; los arrays se convierten en un slice del tipo del primer elemento, o []interface{} si el array está vacío o el elemento es null.
¿Los nombres de campo son Go válido?
Las claves se convierten a PascalCase exportado y la clave original se conserva en una etiqueta json, así que el JSON viaja de ida y vuelta correctamente incluso para nombres como user_id o first-name.
¿Se envía mi JSON a un servidor?
No. El análisis y la generación de código ocurren íntegramente en tu navegador; nada se sube ni se almacena.

Más herramientas