JSON a PHP
Genera clases PHP tipadas con fromArray() a partir de JSON
Pega JSON o carga un ejemplo para generar código PHP.
Qué genera JSON a PHP
JSON a PHP convierte una respuesta de API o cualquier muestra JSON en clases de PHP. La promoción en constructor escribe parámetros de constructor públicos y tipados (PHP 8.0+); el estilo de propiedades públicas escribe propiedades tipadas y las rellena en fromArray(). Los parámetros obligatorios van antes que los opcionales, los valores opcionales tienen null por defecto y las anotaciones PHPDoc list<Type> describen los elementos de array que los tipos nativos no pueden describir.
Cómo usarlo
- 1.Pega JSON, sube o suelta un archivo .json, o carga uno de los ejemplos.
- 2.Define el nombre de la clase raíz y un namespace opcional como App\Models.
- 3.Elige el estilo de clase y si se escriben propiedades tipadas y PHPDoc.
- 4.Lee las notas y luego copia el código o descarga Models.php. Decodifica con json_decode($json, true) y llama a Root::fromArray($data).
Cómo se infieren los tipos
- •Se revisan todos los elementos de cada array, no solo el primero, y los objetos del mismo array se combinan.
- •Una clave que falta en algunos objetos es opcional; una clave que a veces es null es anulable. Ambos casos se distinguen.
- •1 y 2.5 en la misma posición se amplían a número decimal; las demás mezclas se notifican.
- •Los arrays vacíos y los valores que solo son null no aportan información de tipo, así que se usa un tipo genérico y una nota explica el motivo.
- •Correspondencia de tipos: cadena → string, entero → int, decimal → float, booleano → bool, array → array con PHPDoc list<T>, objeto → clase, null observado → ?T, escalares mixtos → unión como string|int, desconocido → mixed.
Límites y privacidad
Una muestra refleja cómo eran los datos en un momento, no el contrato completo de la API. Revisa los campos opcionales, los tipos genéricos y el tamaño de los números antes de confiar en el código. La entrada se limita a 5 MB y 256 niveles de anidación; a partir de 2 MB, la generación espera al botón Generar. Todo se ejecuta en tu navegador y el JSON nunca se sube. Los enteros mayores que PHP_INT_MAX se tipan como mixed, porque json_decode los convierte en float salvo que se use JSON_BIGINT_AS_STRING.
