Inicio › Herramientas para desarrolladores › JSON a array PHP

JSON a array PHP

Pega JSON y obtén código de array PHP limpio con sintaxis corta [ ] o clásica array( ), flechas => alineadas o la salida exacta de var_export(), listo para archivos de configuración, seeders y tests. Cambia la dirección para convertir un literal de array PHP de nuevo en JSON. Todo funciona en tu navegador.

Última actualización:

Todo se convierte localmente en esta pestaña; no se sube ni se ejecuta nada. Consejo: Ctrl + Intro convierte.

Publicidad
Publicidad

Cómo usar JSON a array PHP

  1. Elige la dirección: JSON → array PHP o array PHP → JSON.
  2. Pega tu entrada o abre un archivo .json o .php. Se carga un ejemplo para que veas el resultado enseguida.
  3. Elige el estilo de salida: sintaxis corta o larga o var_export(), una variable o sentencia return, sangría y alineación (o las opciones de JSON en modo inverso).
  4. Pulsa Convertir. Con Actualización en vivo activada, la salida se actualiza mientras escribes.
  5. Copia o descarga el archivo .php o .json, o pulsa Invertir dirección para convertir el resultado de ida y vuelta.

Ejemplo: de JSON a array PHP

{ "name": "Ada", "admin": true, "score": 9.5, "tags": ["math", "code"], "address": { "city": "London", "zip": null } }

Con las opciones predeterminadas (sintaxis corta, flechas alineadas, comas finales) se convierte en:

$data = [
    'name'    => 'Ada',
    'admin'   => true,
    'score'   => 9.5,
    'tags'    => ['math', 'code'],
    'address' => [
        'city' => 'London',
        'zip'  => null,
    ],
];

En PHP obtendrías el mismo array con json_decode($json, true), y json_encode($data) lo vuelve a convertir en el JSON original.

Tipos de JSON y PHP lado a lado

JSONPHP (sintaxis corta)var_export()
"text"'text''text'
"line\nbreak""line\nbreak"entre comillas con un salto de línea real
42 / 4.542 / 4.542 / 4.5
true / falsetrue / falsetrue / false
nullnullNULL
[1, 2][1, 2]array ( 0 => 1, 1 => 2, )
{"a": 1}['a' => 1] o (object) ['a' => 1]array ( 'a' => 1, )
{} / [][]array ( )

Trampas al convertir de ida y vuelta

  • Objetos vacíos. {} y [] se decodifican como un array PHP vacío, y json_encode([]) devuelve []. Conserva los objetos vacíos con (object) [] o la opción JSON_FORCE_OBJECT.
  • Claves de cadena numéricas. PHP convierte claves como "7" en el entero 7. Si esas claves resultan ser 0, 1, 2 … en orden, json_encode() genera una lista en lugar de un objeto.
  • Flotantes. Desde PHP 7.1, json_encode(3.0) da 3.0, mientras que los enteros siguen siendo enteros. Los enteros muy grandes que superan PHP_INT_MAX se convierten en flotantes.
  • Escapado. Por defecto, PHP escapa las barras (\/) y los caracteres no ASCII (ë). Usa JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE para una salida más limpia, como hace esta herramienta por defecto.

Preguntas frecuentes

¿Cómo se representan los objetos JSON en PHP?

Un objeto JSON se convierte en un array asociativo con claves de cadena, que es lo que devuelve json_decode($json, true). Un array JSON se convierte en una lista con claves 0, 1, 2, etc. Si prefieres objetos stdClass, como devuelve json_decode($json) sin true, activa Objetos como conversiones (object).

¿Cuál es la diferencia entre [ ] y array( )?

Son idénticos en tiempo de ejecución. La sintaxis corta [ ] está disponible desde PHP 5.4 y es el estándar moderno (PSR-12 y la mayoría de los frameworks la usan). Elige array( ) solo para bases de código muy antiguas o guías de estilo que lo exijan.

¿Qué produce el estilo var_export()?

Reproduce el formato exacto de var_export($value) de PHP: array ( con un espacio, sangría de dos espacios, claves numéricas explícitas, NULL en mayúsculas y flotantes escritos con punto decimal, como 3.0. Es útil para comparar con la salida de scripts existentes o archivos de caché generados.

¿Cómo se escapan las cadenas?

Las cadenas se escriben entre comillas simples, donde solo hay que escapar la barra invertida y la comilla simple, así que O'Brien se convierte en 'O\'Brien'. Las cadenas con saltos de línea, tabulaciones u otros caracteres de control usan comillas dobles con escapes \n, \t y \x, y cualquier $ se escapa para que PHP no intente interpolar variables.

¿Cómo decide el paso de array PHP a JSON entre una lista y un objeto?

Sigue a json_encode(): un array cuyas claves son exactamente 0, 1, 2 … en orden se convierte en un array JSON, y cualquier otra cosa (claves de cadena, huecos u otro orden) se convierte en un objeto JSON. Los arrays vacíos se convierten en [] salvo que se conviertan con (object) o esté activado JSON_FORCE_OBJECT. Las claves siguen las reglas de PHP, así que '7' se convierte en el entero 7, true en 1, y una clave duplicada sobrescribe el valor anterior.

¿Puede convertir código PHP que usa variables, constantes o funciones?

No. Solo se convierten valores literales: cadenas, números, true, false, null, arrays anidados y conversiones (object). No se ejecuta nada, así que expresiones como PHP_EOL, $name o date() se notifican como errores. Sustitúyelas por valores literales o ejecuta json_encode() en PHP.

¿Se suben mis datos?

No. Ambas direcciones las gestiona JavaScript en esta página y no se ejecuta código PHP, así que tus datos nunca salen de tu dispositivo.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Conversores de datos y formatos de archivo →