OpenReplay Logo
12k
12k

Convertidor de JSON a Go

Convierte cualquier muestra de JSON en structs de Go tipados con tags json — procesado localmente en tu navegador, nada se envía.

Procesado localmente

Acerca de esta herramienta

Los structs de Go son la forma idiomática de modelar JSON en Go: cada campo exportado lleva un tag de struct `json:"..."` que el paquete estándar `encoding/json` usa para serializar y deserializar los datos. Este conversor analiza una muestra de JSON, infiere un tipo de Go para cada valor — `int` para los números enteros, `float64` para los decimales, `string`, `bool`, `interface{}` para null o desconocido, y `[]T` para los arrays — y emite nombres de campo exportados en PascalCase conservando la clave original en el tag. Los arrays de objetos se fusionan en una sola forma para que el struct generado incluya cada clave vista entre los elementos.

Úsalo para generar los tipos de petición y respuesta de una API HTTP, modelar un archivo de configuración o una carga útil de webhook, o convertir un documento de ejemplo procedente de un almacén NoSQL en structs tipados que puedas pegar directamente en tu paquete. Nombra el struct raíz, activa `,omitempty` en los tags, y elige entre tipos nombrados independientes para los objetos anidados o structs anónimos en línea — práctico para modelos puntuales rápidos frente a tipos compartidos reutilizables.

Todo se ejecuta del lado del cliente en tu navegador — tu JSON se analiza localmente y nunca se envía a un servidor.

Preguntas frecuentes

¿Cómo se corresponden los tipos de JSON con los tipos de Go?

Los números enteros se convierten en `int`, los decimales en `float64`, las cadenas en `string`, los booleanos en `bool`, y `null` (o cualquier elemento desconocido) en `interface{}`. Los arrays se convierten en una slice de Go `[]T` del tipo del elemento, y los objetos anidados se convierten en structs nombrados (o structs anónimos en línea si activas esa opción).

¿Por qué mis nombres de campo como user_id se transforman en UserID?

Go exporta los campos que empiezan por una letra mayúscula, así que las claves se convierten a PascalCase. Las siglas comunes — ID, URL, API, HTTP — se conservan totalmente en mayúsculas para respetar las convenciones de golint, de modo que `user_id` se convierte en `UserID` y `api_url` en `APIURL`. La clave original se conserva en el tag de struct json.

¿Qué hace la opción omitempty?

Añadir `,omitempty` a un tag de struct le indica a `encoding/json` que deje ese campo fuera del JSON serializado cuando contiene su valor cero (0, "", false, nil, o una slice/map vacía). Solo afecta a la codificación, no a la decodificación.