json_decode ¿Objeto o array?

Si has usado json_decode alguna vez sabrás que esta función nos convierte una cadena que viene en formato json en un objeto:

$json = '{"nombre": "Gorka", "conocimientos": {"java":"algo", "go": "aprendiendo", "c": "alto", "python": "alto", "php":"master and commander"}}';

// Así se convierte en un objeto:
$objetoJson = json_decode($json);
print_r($objetoJson);

Y el resultado sería:

stdClass Object
(
    [nombre] => Gorka
    [conocimientos] => stdClass Object
        (
            [java] => algo
            [go] => aprendiendo
            [c] => alto
            [python] => alto
            [php] => master and commander
        )

)

Pero pasando el segundo parámetro a ‘true’ nos va a convertir el json en un array:

// Y así en un array:
$arrayJson = json_decode($json, true);
print_r($arrayJson);

De esta forma tendríamos un array:

Array
(
[nombre] => Gorka
[conocimientos] => Array
(
[java] => algo
[go] => aprendiendo
[c] => alto
[python] => alto
[php] => master and commander
)

)

Puedes verlo en acción aquí: Ejemplo de json_decode en PHP.

NOTA: Si pronuncias json como «lleison» te puede pasar como a nuestro elefantito de la imagen.

Deja un comentario