Generador de JSON de ejemplo desde struct de Go
Pega una definición de struct de Go con etiquetas json para generar automáticamente datos JSON de ejemplo. Compatible con structs anidados, slices, omitempty y json:"-", ideal para mocks de API y ejemplos de Postman.
Generar JSON de muestra a partir de un struct de Go
Cuando monta un simulador de API o registra un ejemplo de respuesta en Postman, acaba escribiendo a mano qué JSON producirá realmente una definición de struct. Esta herramienta genera esa forma como JSON de muestra sin más que la definición de struct de Go que usted pegue, atendiendo por igual a structs anidados, slices, `omitempty` y `json:"-"`.
**Lo importante aquí es que el nombre de un campo de Go no se convierte necesariamente en la clave del JSON.** La etiqueta json tiene preferencia allí donde existe, y un campo marcado `json:"-"` no aparece en absoluto. Como `omitempty` descarta un campo cuando su valor es el valor cero, **el propio elenco de claves puede diferir entre dos codificaciones del mismo struct.** Leer la definición a simple vista invita, por tanto, a equivocarse sobre la forma real del JSON, y desplegarla mecánicamente es justo la tarea de esta herramienta. Los valores que produce son representativos de cada tipo, así que sustitúyalos por datos con sentido antes de dar uso a la salida.
Cómo se usa
- Pegue las definiciones de struct Puede pegar varios structs relacionados a la vez sin problema.
- Indique el struct que le interesa **Especifíquelo cuando haya más de uno. Si deja el campo vacío, se usa el primero.**
- Revise el JSON generado Los structs anidados y los slices salen completamente desplegados.
- Ponga sus propios valores Vienen rellenos con valores representativos; sustitúyalos por datos acordes a su propósito.
Consejos para aprovecharla mejor
- Si pegas varios structs juntos, los tipos de los campos anidados se resuelven automáticamente y se generan objetos de ejemplo de forma recursiva (si no se encuentra una definición, se usa un objeto vacío {} y se muestra una advertencia).
- Indica un nombre de struct objetivo para elegir cuál se usa como raíz cuando la entrada contiene varios (si se deja vacío, se usa el primer struct que aparece).
- Los campos con la etiqueta json:"-" se excluyen de la salida JSON. Los campos con omitempty igual generan su clave con normalidad, así que elimínala manualmente si no la necesitas.
- Los valores generados son solo marcadores de posición según el tipo (las cadenas se convierten en "example", los números en 1, etc.). Sustitúyelos por datos reales si necesitas un ejemplo real de respuesta de API.
- Esta herramienta es la inversa de su hermana, el conversor de JSON a struct de Go. Te permite convertir rápidamente un struct definido en un handler de Go en una carga de ejemplo para tu equipo de frontend o QA.
Cuándo resulta útil
Al montar un simulador de API
**Fijar el ejemplo de respuesta antes de escribir el servidor evita que el trabajo de la interfaz tenga que esperar.**
Al poner ejemplos en la documentación
Aporta el material para pegar en un ejemplo de Postman o en una muestra de OpenAPI.
Al confirmar qué hace una etiqueta
Puede ver en forma concreta qué producen realmente `omitempty` o `json:"-"`.
Al acordar una forma con el equipo de interfaz
Mostrar JSON concreto deja menos margen al malentendido que entregar una definición de tipos.
Términos de la codificación en Go
- Etiqueta json
- La anotación adjunta a un campo con la forma `json:"user_id"`, que **nombra la clave del lado JSON.** Sin ella se usa el nombre del campo tal cual.
- Omitempty
- Un ajuste que **deja la clave enteramente fuera de la salida cuando el valor es el valor cero.** Conviene notar que un 0 o una cadena vacía se descartan junto con todo lo demás.
- Json:"-"
- Un ajuste que mantiene el campo fuera del JSON. Sirve para ocultar campos de uso interno.
- Valor cero
- El valor inicial fijado para cada tipo: 0 para los números, vacío para las cadenas y nil para punteros y slices.
- Slice
- Una secuencia de longitud variable, que en JSON se vuelve un arreglo. **Un slice nil se escribe `null`, lo que lo distingue de un arreglo vacío.**
- Campo embebido
- La notación que incorpora otro struct escribiendo solo su nombre de tipo. En JSON sus campos aparecen al mismo nivel que las claves del padre.
Preguntas frecuentes
Curiosidad — La inversa de la conversión de JSON a struct de Go
Al construir una API web en Go, la forma de la respuesta se suele definir combinando un struct con etiquetas json. Pero cuando un desarrollador de frontend o un ingeniero de QA quiere comprobar el comportamiento de la API, leer el código de Go y convertir mentalmente cada tipo de campo a JSON es tedioso y propenso a errores.
Esta herramienta realiza justo la operación inversa de su hermana, el «Conversor de JSON a struct de Go». Pega una definición de struct de Go y genera una carga JSON de ejemplo con nombres de clave según las etiquetas json y valores de marcador de posición según el tipo de cada campo, lista para usar directamente en un ejemplo de Postman o en un mock de frontend.
Aun así, no es un compilador real de Go, sino un analizador ligero basado en expresiones regulares y análisis línea por línea. Maneja definiciones de campos simples y structs anidados pegados juntos en la misma entrada, pero notaciones complejas como structs anónimos anidados o declaraciones de tipo en varias líneas pueden no analizarse correctamente. Úsala como un borrador inicial y verifica la forma final contra el código fuente real de Go.