Saltar al contenido
en es

JSON a tipos TypeScript, PHP y Go

Pega un JSON de ejemplo y obtén las declaraciones de tipos equivalentes: interfaces TypeScript, clases readonly de PHP 8.2 con propiedades promovidas o structs de Go con etiquetas json.

Se ejecuta en tu navegador: no se sube nada.

Copiado

Cómo se usa

  1. Pega un JSON de ejemplo representativo. Cuanto más variados sean los elementos de tus arrays, mejor será el resultado.
  2. Elige TypeScript, PHP o Go y escribe el nombre del tipo raíz.
  3. Los arrays de objetos se combinan en un solo tipo: un campo que falta en algunos elementos pasa a ser opcional y un null pasa a ser un tipo anulable.
  4. Copia el código o descárgalo y ajusta nombres y tipos a mano donde el ejemplo no daba suficiente información.

Preguntas frecuentes

¿Se sube mi JSON?

No. Los tipos se generan en tu navegador y no se envía nada.

¿Cómo se detectan los campos opcionales y anulables?

A partir del ejemplo. Si una clave falta en algunos objetos de un array, es opcional (? en TypeScript, = null en PHP, un puntero con omitempty en Go). Si un valor es null en el ejemplo, el tipo incluye null.

¿Por qué aparece any, mixed o unknown?

El ejemplo no daba suficiente información: un array vacío no tiene tipo de elemento, un null solo no tiene otro tipo, y valores de distinto tipo en la misma posición no se pueden expresar como un solo tipo en Go.

¿Qué versión de PHP necesitan las clases?

PHP 8.2 o superior, porque son clases final readonly con promoción de propiedades en el constructor. Los arrays se tipan con PHPDoc, como @param Item[] $items.

¿Se distinguen enteros y decimales?

Sí. 1 es un entero (int, int64) y 1.5 un decimal (float, float64). Si ambos aparecen en la misma clave, el campo pasa a decimal. En TypeScript ambos son number.