Saltar al contenido

JSON a clase PHP

Convierte una muestra JSON en una clase PHP tipada con constructor, fromArray y toArray.

Entrada
Salida

JSON a clase PHP

Pega un objeto JSON o matriz y esta herramienta infiere un tipo para cada campo, luego genera una clase PHP lista para usar: propiedades tipadas, un constructor, una fábrica fromArray() estática y un método toArray() para convertir el objeto nuevamente en una matriz simple. Los objetos anidados se convierten en sus propias clases automáticamente, y las formas idénticas se reutilizan en lugar de duplicarse, por lo que una carga útil con varias secciones estructuradas de forma similar aún produce un archivo compacto.

El nombre de la clase y el nombre del espacio de nombres nombran la clase raíz y, opcionalmente, la envuelven en un espacio de nombres de PHP. El constructor promovido de PHP 8 escribe propiedades directamente en la firma del constructor en lugar de declararlas por separado; desactívalo para un constructor clásico explícito. Generar getters y setters añade métodos de acceso (isX() para booleanos, getX()/setX() de lo contrario) en lugar de exponer propiedades directamente. declare(strict_types=1) añade el encabezado de tipo estricto de PHP, y los comentarios de bloque de documentación anotan cada propiedad con su tipo inferido. Los campos de matriz deciden si una lista se escribe como una matriz simple o se documenta con su tipo de elemento, como string[], ya que PHP no tiene genéricos para eso en la sugerencia de tipo.

Un campo visto como nulo, o faltante en algunos elementos de una matriz de objetos, se genera como anulable, con una verificación isset() segura cuando necesita construir un objeto anidado o asignar una lista, y un valor predeterminado de coalescencia nula de lo contrario. Una clave que choca con una palabra clave de PHP o comienza con un dígito se cambia a un nombre de propiedad válido, y cada propiedad generada mantiene la clave JSON original como su clave de matriz en fromArray() y toArray().

Todo se ejecuta localmente en tu navegador: el JSON que pegas, que puede incluir respuestas reales de API o datos de configuración, nunca se carga en ningún lugar. Copia la clase generada, descárgala como archivo .txt, o envía la salida nuevamente a la entrada para refinarla más.

Preguntas frecuentes

¿Qué versión de PHP tiene como objetivo el código generado?
PHP 8.0 o posterior, ya que las propiedades del constructor promovido y el tipo mixto son características de PHP 8. Desactiva la opción de constructor promovido si necesitas una salida compatible con PHP 7.
¿Cómo se manejan los objetos anidados?
Cada forma de objeto distinta se convierte en su propia clase, con sus propios métodos fromArray() y toArray(). Dos campos con una forma idéntica reutilizan la misma clase generada en lugar de duplicarla.
¿Qué ocurre con un campo que a veces es nulo o falta?
Se genera como una propiedad tipada anulable. Los escalares tienen como valor predeterminado null con el operador de coalescencia nula; los objetos anidados y las listas de objetos utilizan una verificación isset() para que fromArray() nunca llame a un método en datos faltantes.
¿Puedo generar múltiples clases a partir de una muestra JSON?
Sí. Cada objeto anidado en la muestra produce su propia clase en el mismo archivo, en orden de dependencia, por lo que el archivo está listo para usar tal cual.
¿Se carga mi JSON en algún lugar?
No. La generación de clases se ejecuta completamente en tu navegador: tu JSON nunca abandona tu dispositivo.