Convertir JSON a Go — Generador de structs
Convierte JSON a structs de Go en línea con etiquetas json, omitempty, punteros para campos opcionales y helpers de unmarshal. Gratis, rápido y privado.
🔒 Se ejecuta completamente en tu navegador — nada se subeGenera structs de Go a partir de JSON
Escribir a mano las structs de Go para una respuesta de API grande es lento y propenso a errores. Este conversor de JSON a Go lo hace al instante: pega un ejemplo JSON y genera tipos struct exportados con nombres de campo correctos y etiquetas json que vinculan cada campo con su clave original. Los objetos anidados se convierten en structs con nombre propio, los arrays en slices, los enteros y los decimales se distinguen como int64 y float64, y las marcas de tiempo ISO 8601 se reconocen como time.Time. La salida está lista para encoding/json sin más ediciones.
La herramienta se basa en quicktype, que examina cada elemento de cada array antes de elegir un tipo. Si un elemento de una lista tiene un campo que los demás no tienen, ese campo pasa a ser un puntero, de modo que el valor cero y el valor ausente siguen siendo distinguibles: un detalle que los conversores de una sola pasada suelen hacer mal.
Opciones que importan en Go
Define el nombre del package para que el archivo compile donde lo pongas. Activa omitempty si también vuelves a serializar estas structs a JSON y quieres que los campos opcionales ausentes sigan ausentes. Por defecto, el generador añade pequeñas funciones auxiliares Unmarshal… y Marshal alrededor del tipo raíz; marca Structs only si prefieres llamar tú mismo a json.Unmarshal y solo necesitas los tipos. Cambia el nombre de la struct raíz de Root al nombre de dominio que quieras, por ejemplo Repository o WebhookEvent.
Cómo obtener el mejor resultado
Ofrece al conversor un ejemplo representativo: un array con varios elementos, campos opcionales rellenos y objetos anidados con datos en lugar de vacíos. Los arrays vacíos y los valores null no dan nada con lo que trabajar a la inferencia y recurren a interface{}. Después de pegar el código, ejecuta gofmt, revisa los tipos numéricos donde el ejemplo quizá no muestre todo el rango y sustituye las cadenas genéricas por tipos propios cuando tu API documente valores fijos. Como todo el procesamiento ocurre en tu navegador, los datos internos o de clientes nunca salen de tu equipo.
Cómo usar
- Pega el JSONPega una respuesta de API o cualquier documento JSON, o carga el ejemplo.
- Elige las opcionesDefine el nombre de la struct raíz y el package, y decide si usar omitempty y los helpers.
- Copia las structsCopia el código Go o descarga un archivo .go y ejecuta gofmt como siempre.
Preguntas frecuentes
¿Añade etiquetas json a las structs?
`json:"key"` que conserva la clave JSON original, y con una casilla puedes añadir ,omitempty a los campos opcionales.¿Cómo se tratan los campos opcionales y null?
*string, así puedes distinguir un valor ausente de un valor cero.¿Qué hacen las funciones auxiliares?
UnmarshalRoot y Marshal. Marca Structs only para obtener solo las declaraciones de tipos.