JSON a Struct / Interface / Class

Pega JSON — obtén definiciones de tipos en Go, TypeScript, Python y Java al instante

← Volver a herramientas de conversión
1
Pega JSON

Cualquier objeto o array JSON

2
Nombre raíz

Por defecto: "Root"

3
Copia para tu lenguaje

Go, TS, Python o Java

Pega JSON y haz clic en Generar para ver el resultado

Mapeo de tipos JSON — Cómo representa cada lenguaje los tipos JSON

Tipo JSONEjemploGoTypeScriptPythonJava
string"hola"stringstringstrString
integer42intnumberintInteger
float3.14float64numberfloatDouble
booleantrueboolbooleanboolBoolean
nullnullinterface{}unknownAnyObject
array[1,2,3][]TT[]list[T]List<T>
object{"a":1}struct{...}interface{...}@dataclass classclass{...}

¿Por qué generar tipos a partir de JSON?

La integración de API es el caso de uso más común: recibes una respuesta JSON de una API REST o GraphQL y necesitas modelos tipados en tu lenguaje preferido. Escribir manualmente definiciones de struct a partir de una respuesta JSON grande es tedioso y propenso a errores — un objeto JSON de 100 líneas puede llevar más de 30 minutos escribirlo a mano, y un solo tipo de campo incorrecto causa errores en tiempo de ejecución. Los archivos de configuración (package.json, terraform.tfstate, docker-compose.yml) son otra fuente frecuente: los desarrolladores quieren acceso a los datos de configuración con seguridad de tipos. Los pipelines de generación de código usan herramientas de JSON a tipos como primer paso antes de generar código de serialización, esquemas de base de datos o documentación de API. Esta herramienta genera las 4 salidas de lenguaje a partir de una sola entrada JSON — sin registro, sin clave API, resultados instantáneos.

Convenciones específicas de cada lenguaje

Go: Los nombres de campo usan PascalCase con etiquetas de struct json:"nombre_campo". Los campos de tipo string usan string; los números usan float64 por defecto a menos que sean claramente enteros. Los objetos anidados se convierten en tipos struct anidados. La etiqueta de struct conserva la clave JSON original para marshaling/unmarshaling.

TypeScript: Las interfaces usan PascalCase (p. ej., Root, Address). Los campos opcionales (de valores nulos) reciben el modificador ?. Los arrays usan la sintaxis T[]. Se generan tipos union para arrays con tipos de elementos mixtos.

Python: Usa el decorador @dataclass con type hints. Los campos reciben Optional[T] para valores anulables. Los objetos anidados se convierten en clases dataclass anidadas. Se incluyen las importaciones from dataclasses import dataclass y from typing import List, Optional.

Java: Genera clases POJO (Plain Old Java Object) con campos privados, getters/setters publicos y colecciones genericas apropiadas. Usa List<T> para arrays, Integer/Double/Boolean para wrappers de primitivos anulables.

Preguntas frecuentes

¿Cómo convierto JSON a un struct de Go?

Pega tu JSON, cambia a la pestaña Go. La herramienta genera structs de Go adecuados con etiquetas json:"...", tipos struct anidados y tipos slice para arrays. Los campos usan PascalCase con la clave JSON original conservada en las etiquetas de struct.

¿Cómo genero interfaces de TypeScript a partir de JSON?

Selecciona la pestaña TypeScript después de pegar tu JSON. Las interfaces se generan con modificadores opcionales para campos anulables, tipos de array usando T[] e interfaces anidadas para objetos anidados.

¿Puede esto generar dataclass de Python o clase Java a partir de JSON?

Sí — los 4 lenguajes se generan simultáneamente. Python: @dataclass con type hints y Optional/List de typing. Java: POJO con campos privados, getters/setters y colecciones genéricas. Cambia entre pestañas para ver cada lenguaje.

¿Cómo funciona la inferencia de tipos?

Los valores JSON se mapean: strings → string/str/String, enteros → int/number/int/Integer, decimales → float64/number/float/Double, booleanos → bool/boolean/bool/Boolean, null → interface{}/unknown/Any/Object, arrays → colecciones tipadas, objetos → tipos anidados. Consulta la tabla de mapeo de tipos arriba.

¿Qué pasa con los campos opcionales y los valores nulos?

Los valores JSON nulos generan tipos opcionales/puntero: *T o interface{} en Go, modificador ? en TypeScript, Optional[T] en Python, wrappers anulables en Java. Los campos que faltan en algunos elementos del array se tratan como opcionales en todas las salidas.