He escrito más PHP que cualquier otro idioma, primero como desarrollador de complementos de WordPress y luego creando backends SaaS en Laravel, y hay una pequeña tarea que surge constantemente y que me cansé de hacer a mano. Tienes un blob JSON, una muestra de configuración, una respuesta API, un dispositivo y lo necesitas como una matriz PHP en tu código fuente. No decodificado en tiempo de ejecución, en realidad escrito en el archivo como literal. Volver a escribir los corchetes y las flechas a mano es lento y es exactamente el tipo de traducción mecánica que debe hacer una herramienta. Así que incorporé uno Toolz.dev, y esta es la guía para ello.
TL;Dr: La herramientaz Convertidor de matriz JSON a PHP analiza un documento JSON y lo serializa como un literal de matriz PHP que puede pegar directamente en un archivo. Los objetos JSON se convierten en matrices asociativas con
=>, las matrices JSON se convierten en matrices indexadas y los escalares se asignan a sus equivalentes PHP. Elija corto[]o clásicoarray()sintaxis, establezca la sangría y, opcionalmente, envuelva el resultado en a$variable = [...];asignación. Se ejecuta completamente del lado del cliente: sin carga, sin registro, funciona sin conexión.
¿qué es un convertidor de matriz JSON a PHP?
Un convertidor de matriz JSON a PHP convierte un documento JSON en la matriz PHP equivalente literal. Un objeto JSON se convierte en una matriz asociativa escrita con => operador, una matriz JSON se convierte en una matriz indexada y los tipos escalares se asignan directamente: una cadena JSON se convierte en una cadena PHP de una sola cita true y false quédate igual, null se queda null, y los números mantienen su valor. La anidación se conserva a cualquier profundidad, por lo que un objeto JSON profundamente estructurado aparece como una matriz PHP profundamente estructurada con la misma forma.
La razón por la que esto es útil es que las matrices JSON y PHP describen lo mismo, un árbol de valores ordenados y con clave, con puntuación diferente. JSON usa dos puntos y llaves; Usos PHP => y corchetes. La traducción entre ellos es pura mecánica, y la mecánica es propensa a errores cuando se hace a mano, especialmente con estructuras anidadas donde un solo corchete extraviado rompe el archivo. El convertidor realiza la traducción de manera determinista y le devuelve PHP válido.
Vale la pena tener claro lo que esto no es. No lo es json_decode. PHP lee perfectamente JSON en tiempo de ejecución y, cuando sus datos llegan como una cadena, decodificarlos es el movimiento correcto. Esta herramienta es para el otro caso, cuando desea que la matriz viva en el código fuente.
¿por qué no utilizar simplemente json_decode?
Esta es la primera pregunta que hace todo desarrollador de PHP y es la correcta. json_decode($string, true) analiza una cadena JSON en una matriz PHP y el manual PHP la documenta como la forma estándar de consumir JSON. Si su JSON son datos que llegan en tiempo de ejecución, desde una solicitud HTTP, una cola, un archivo que lee, entonces json_decode es exactamente lo que debes usar y ningún generador de código pertenece a él.
El convertidor es para una situación diferente: cuando el JSON no son datos en tiempo de ejecución sino algo que desea codificar. Algunos casos concretos de mi propio trabajo. Una matriz de configuración predeterminada que se envía con un complemento y debe ser legible y editable en la fuente. Una tabla de búsqueda, digamos un mapa de códigos de países para nombres, que se pega una vez y nunca se recupera. Un dispositivo de prueba que debe ser literal para que la prueba sea autónoma y no dependa de la lectura de un archivo. Una semilla para la migración de una base de datos. Un ejemplo en documentación que debe ser PHP pegable en lugar de JSON.
En todos ellos, decodificar una cadena JSON en cada solicitud sería un desperdicio y ocultaría los datos detrás de un literal de cadena, donde su editor no puede doblarlo, su linter no puede verificarlo y un revisor no puede leerlo como PHP. Escribir la matriz en la fuente resuelve eso. El convertidor es la forma más rápida de pasar de una muestra JSON a ese literal.
Aquí está la decisión en una tabla.
| colocación | aprovechamiento | porque |
|---|---|---|
| JSON llega al tiempo de ejecución como datos | json_decode($json, true) |
Analizar es el trabajo; mantenlo dinámico |
| JSON es configuración, accesorios, semillas, ejemplos | Convertidor de matriz JSON a PHP | Confirme un literal legible al origen |
| Necesita que JSON vuelva a salir de un valor PHP | json_encode($array) |
La dirección inversa |
Tienes un PHP serialize() guita |
herramienta no serializar | Ese es un formato completamente diferente |
¿cuál es la diferencia entre corto [] y array() ¿sintaxis?
Producen matrices idénticas; sólo difieren los corchetes. Se utiliza la sintaxis corta [ y ] y ha estado disponible desde PHP 5.4, que ahora es historia antigua, por lo que para cualquier sintaxis corta de código base moderna es la predeterminada y la que busco. El clásico array() el formulario funciona en todas las versiones de PHP jamás lanzadas, lo cual es la única razón para elegirlo: está apuntando a un tiempo de ejecución anterior a PHP 5.4, o un código base cuya guía de estilo exige el formulario largo.
La herramienta te permite cambiar entre ellos sin volver a pegar tu JSON, por lo que si estás contribuyendo a un proyecto antiguo puedes combinar el estilo de su casa con un solo clic. Mi consejo para cualquier novedad es una sintaxis corta, y PSR-12, el estilo de codificación PHP moderno, está escrito en torno a ella.
¿cómo se manejan las cadenas y los caracteres especiales?
Esta es la parte que muerde a las personas que escriben su propio conversor rápido, por lo que vale la pena explicarlo. La herramienta emite cadenas como literales PHP de una sola cita. Dentro de las comillas individuales, PHP trata literalmente a casi todos los caracteres; los únicos dos que son especiales son la barra invertida y la cita única en sí. Entonces el convertidor escapa exactamente de esos dos, una barra invertida se convierte en dos barras invertidas y una sola cita obtiene una barra invertida anterior, y deja todo lo demás en paz.
Eso tiene una consecuencia agradable. Una nueva línea dentro de una cadena JSON aparece como una nueva línea real dentro de la cadena PHP de comillas simples, que es válida y conserva el carácter exactamente. No obtendrás el destrozo que sentirías si la herramienta intentara aplicar ingenuamente secuencias de escape de comillas dobles. Una cadena JSON como O'Brien se convierte en 'O\'Brien', y una ruta de Windows como C:\Users se convierte en 'C:\\Users', los cuales son PHP correctos. Si alguna vez ha depurado un archivo de configuración donde un apóstrofe en un valor rompió silenciosamente la sintaxis, apreciará que esto se maneje por usted.
¿Cómo uso el convertidor?
El flujo consta de cuatro pasos. Pegue un objeto o matriz JSON en el cuadro de entrada; Si desea ver primero la forma de la salida, cargue la muestra. Elija la sintaxis de la matriz, breve [] investigaciones operacionales array(). Establezca la sangría en 2 espacios, 4 espacios o una pestaña para que coincida con su proyecto y, opcionalmente, escriba un nombre de variable para ajustar la salida como $config = [...]; con un punto y coma final, listo para colocarlo en un archivo. Luego haga clic en Convertir y copie el resultado.
Si el JSON no es válido, la herramienta informa el propio mensaje de error del analizador ' en lugar de fallar silenciosamente, por lo que se puede encontrar rápidamente una coma final perdida o una clave sin comillas. Y debido a que todo se ejecuta en su navegador, puede pegar una respuesta API real o una configuración privada sin que salga de su máquina, lo cual importa cuando los valores no son algo que enviaría a un servidor aleatorio. Ese modelo del lado del cliente es el mismo detrás del resto del sitio, descrito en el herramientas en línea de privacidad de datos guía.
¿cómo encaja esto con las otras herramientas JSON?
El convertidor de matriz JSON a PHP es un miembro de una pequeña familia de transformadores JSON en el sitio y comparten el mismo núcleo de análisis. Cuando primero desea ordenar el JSON, el Formateador JSON lo sangrará y validará. Cuando necesite los mismos datos que una interfaz TypeScript en lugar de PHP, el Convertidor JSON a TypeScript infiere los tipos. Cuando el objetivo es una hoja de cálculo o una carga de base de datos, el Convertidor JSON a CSV lo aplana en filas y el Convertidor JSON a YAML maneja formatos de configuración que prefieren YAML.
Específicamente para los desarrolladores de PHP, el vecino que vale la pena conocer es el herramienta no serializar, que maneja PHP & #39; propio serialize() formato. Esa es una bestia diferente de JSON, un formato de cable específico de PHP que se encuentra en los datos de sesión y en algunos valores de opciones de WordPress, y las dos herramientas cubren las dos formas en que los datos estructurados comúnmente aparecen en un proyecto PHP. Si trabajas en toda la pila, el Kit de herramientas para desarrolladores web el resumen muestra cómo estas piezas se encajan y el Herramientas de productividad para desarrolladores la guía cubre el conjunto más amplio.
Un ejemplo trabajado de un flujo de trabajo de WordPress y Laravel
Déjame concretar esto con los dos lugares donde más lo golpeé. En un complemento de WordPress, a menudo envías una matriz de configuración predeterminada que siembra la tabla de opciones en el momento de la activación. Durante el desarrollo, esa estructura frecuentemente comienza su vida como una muestra JSON, tal vez exportada desde una interfaz de usuario de configuración o esbozada mientras diseña el esquema. En lugar de traducirlo manualmente, pego el JSON en el convertidor, elijo una sintaxis corta y una sangría de 4 espacios para que coincida con el estilo y el tipo del complemento #39 defaults como nombre de la variable, y volver $defaults = [ ... ]; eso cae directamente en un get_default_settings() función. Las teclas siguen siendo legibles, un revisor puede ver la forma en la diferencia y no hay decodificación en tiempo de ejecución en cada carga de página.
El lado de Laravel es similar pero aparece en la configuración y en los seeders. Un archivo de configuración devuelve una gran matriz asociativa y regularmente tengo una versión JSON de algún mapeo de terceros, una tabla de divisas, un conjunto de indicadores de características, una lista de planes que deben convertirse en esa matriz. El convertidor convierte el JSON en literal, lo envuelvo en el return [ ... ]; el archivo de configuración espera y el valor ahora es PHP de primera clase con el que se almacena en caché el marco config:cache en lugar de analizarse desde una cadena. Para los sembradores de bases de datos, el mismo truco funciona: pegue el JSON de sus filas de muestra, obtenga una matriz y aliméntela insert().
La razón por la que me apoyo en un convertidor en lugar de json_decode(file_get_contents(...)) en estos lugares no hay pereza, es que al confirmar el literal los datos forman parte de la revisión del código, parte del análisis estático y parte del historial de versiones en una forma que lee un humano. Un archivo JSON ubicado junto al código es invisible para un linter PHP; una matriz en la fuente no lo es. Cuando los datos son una parte fija de la aplicación en lugar de ingresarlos, esa visibilidad vale la pena la conversión única.
También hay un ángulo de documentación que subestimé hasta que comencé a escribir más guías. Cuando desea mostrar un ejemplo de PHP en un README o una base de conocimientos, un blob JSON no es PHP copiable y pegable, y los lectores que lo capturan cometen un error de sintaxis. Ejecutarlo primero a través del convertidor significa que el ejemplo en sus documentos es PHP real y ejecutable que un lector puede colocar en un archivo y ver el trabajo, lo cual es algo pequeño que aumenta silenciosamente la calidad de la documentación.
¿Cuáles son los límites que vale la pena conocer?
Algunos bordes honestos. El más grande es la precisión numérica y es una propiedad del análisis JSON en general y no de esta herramienta específicamente. El convertidor analiza su JSON con el navegador 's JSON parser, que representa números como flotadores de doble precisión. Los números enteros más allá de aproximadamente 2 elevado a la potencia 53, dígitos de dieciséis años, pierden precisión en el momento del análisis, antes de que la herramienta los vea. Si está convirtiendo JSON con ID de números enteros muy grandes, trátelos como cadenas en JSON para mantenerlos exactos. Cada convertidor basado en JSON.parse comparte este límite; una herramienta que afirmaba lo contrario estaría mintiendo.
En segundo lugar, la coerción de claves de matriz PHP. PHP convierte silenciosamente una clave de cadena que parece un número entero en una clave entera real. El convertidor escribe las claves de objeto como cadenas citadas, lo cual es explícito y correcto, pero tenga en cuenta que PHP en sí puede tratar '0' y 0 como la misma clave en tiempo de ejecución. Esto sólo importa para objetos cuyas claves son cadenas numéricas, lo cual es raro, y el comportamiento es PHP's, no la herramienta's.
Tercero, contenedores vacíos. Un objeto JSON vacío {} y una matriz JSON vacía [] ambos se convierten [] en PHP, porque una matriz PHP no puede distinguir los dos. Esa es una ambigüedad genuina en el mapeo, no un atajo, y no existe una construcción PHP que preserve la diferencia.
Finalmente, la salida es un valor, no una declaración, a menos que proporcione un nombre de variable. Sin uno, obtienes un literal simple, que es lo que deseas al pegar en una expresión existente; con uno obtienes una asignación completa que termina en punto y coma. El nombre de la variable está validado, por lo que se rechaza un identificador no válido con un mensaje claro en lugar de producir PHP roto.
Preguntas frecuentes
¿qué es un convertidor de matriz JSON a PHP? Un convertidor de matriz JSON a PHP transforma un documento JSON en la matriz PHP equivalente literal. Los objetos JSON se convierten en matrices asociativas con => El operador, las matrices JSON se convierten en matrices indexadas y los tipos escalares se asignan a sus contrapartes PHP para que pueda pegar el resultado directamente en un script.
¿cómo convierto JSON a una matriz PHP? Pegue su JSON en el cuadro de entrada, elija una sintaxis corta [] o matriz () y un estilo de sangría, luego haga clic en Convertir. La herramienta crea un literal de matriz PHP que puede copiar, opcionalmente envuelto en una asignación de variable si ingresa un nombre de variable.
¿cuál es la diferencia entre sintaxis corta [] y matriz()? Producen matrices idénticas; sólo difieren los corchetes. Usos de sintaxis corta [] y ha estado disponible desde PHP 5.4, mientras que array() es la forma anterior que funciona en cada versión de PHP. Elija array() solo si debe admitir un tiempo de ejecución anterior a PHP 5.4.
¿esto reemplaza a json_decode en PHP? No. json_decode ($json, verdadero) analiza una cadena JSON en una matriz en tiempo de ejecución, que es justo cuando el JSON llega como datos. En su lugar, esta herramienta escribe la matriz en su código fuente, lo que se adapta a la configuración, los accesorios, los datos iniciales y los ejemplos que deben estar disponibles en el archivo en lugar de decodificarse en cada solicitud.
¿cómo se mapean los objetos y matrices JSON? Un objeto JSON se convierte en una matriz asociativa PHP donde cada clave es una cadena de una sola cita seguida de => y su valor. Una matriz JSON se convierte en una matriz PHP indexada con los elementos en orden. La anidación se conserva en cualquier profundidad exactamente como en la fuente.
¿cómo se manejan las cadenas y los caracteres especiales? Las cadenas se emiten como literales PHP de una sola cita, por lo que solo se escapan una barra invertida y una sola cita con una barra invertida anterior. Todos los demás caracteres, incluida una nueva línea real, se mantienen palabra por palabra, lo que coincide con la forma en que PHP trata las cadenas de una sola cita.
¿Se subió mi json a alguna parte? No. La conversión se realiza completamente en su navegador mediante JavaScript en su dispositivo. Su JSON nunca se carga, registra ni almacena, y la herramienta continúa funcionando con la red desconectada una vez que la página se ha cargado.
¿el convertidor de matriz JSON a PHP es gratuito? Sí. Es completamente gratuito, sin registro, sin marca de agua ni límite de uso. Convierta tantos documentos JSON a matrices PHP como necesite para proyectos personales o comerciales.



