Saltar al contenido

JSON a Estructura Go

Convierte una muestra JSON en definiciones de estructura Go con tipos y etiquetas inferidas.

Entrada
Salida

JSON a Estructura Go

Pegue una muestra JSON y esta herramienta generará definiciones de estructura Go coincidentes con etiquetas json. Infiere int, float64, string, bool y null para cada campo, crea estructuras con nombre o incrustadas para objetos anidados, y determina tipos de segmento para matrices — incluyendo segmentos de objetos que tienen su propia estructura reutilizable.

Las opciones moldean el código generado. Nombre la estructura raíz usted mismo o deje que la herramienta la deduzca. Elija cómo se escriben las etiquetas — conserve la clave original o conviértala a snake_case o camelCase independientemente de cómo se nombró el campo original. Active "Agregar omitempty" para agregarlo a cada etiqueta, y "Punteros para campos opcionales" para marcar los campos que faltan o son nulos en partes de la muestra con un tipo de puntero. Cuando los objetos de matriz tienen campos ligeramente diferentes, "Combinar formas de elementos de matriz" los combina en una estructura con campos adicionales marcados como opcionales en lugar de renunciar al tipo de elemento. Para valores que la herramienta no puede determinar, elija interface{}, el alias any o json.RawMessage para decodificación diferida.

Este es el paso antes de escribir un cliente API o cargador de configuración en Go: pegue una respuesta real o muestra de configuración y obtenga una estructura inicial en lugar de escribir manualmente nombres de campos y etiquetas. Las estructuras anidadas pueden permanecer como tipos con nombre separados para reutilización en otras partes del paquete, o representarse en línea cuando una forma se usa solo una vez. Para campos cuya etiqueta ya no coincide con la clave JSON original, hay disponible un comentario con la clave original.

Todo se ejecuta localmente en su navegador — el JSON que pega, que podría incluir respuestas API reales o configuración interna, nunca se carga. Copie el resultado, descárguelo como archivo .txt o mueva el resultado a la entrada para refinar la muestra y regenerar.

Preguntas frecuentes

¿Maneja objetos y matrices anidados?
Sí. Los objetos anidados se convierten en su propia estructura nombrada (o una anónima incrustada si la habilita), las matrices se convierten en segmentos, y un segmento de objetos reutiliza una estructura cuando cada elemento tiene la misma forma.
¿Qué sucede cuando los objetos de la matriz no tienen todos los mismos campos?
Con "Combinar formas de elementos de matriz" habilitado (predeterminado), la herramienta combina todos los campos que vio en los elementos en una estructura, marcando los campos que faltaban en algunos elementos como opcionales. Deshabilítelo y la herramienta vuelve a un tipo de elemento dinámico.
¿Puedo controlar cómo se nombran las etiquetas JSON?
Sí, con la opción de formato de etiqueta JSON: conserve la clave original exactamente como aparece en la muestra, o convierta cada clave a snake_case o camelCase.
¿Qué tipo obtengo para un campo que la herramienta no puede inferir?
interface{}, el alias any o json.RawMessage, según la opción que elija — RawMessage es útil cuando desea decodificar ese campo usted mismo más adelante.
¿Se carga mi JSON en algún lugar?
No. La generación de estructura se ejecuta completamente en su navegador — el JSON que pega nunca abandona su dispositivo.