JSON III – Gestionar JSON en PHP

Aprender una manera sencilla de gestionar un JSON en PHP.

Consigue gratis tu cuenta

Curso de JSON

JSON es uno de los recursos más utilizados en el mundo del desarrollo de código. Si quieres aprender qué es JSON o mejorar tus conocimientos, este es tu curso. ¡Únete!

Comenzar ahora

Json Tutorial 3

En este tercer tutorial vamos a aprender una manera sencilla de gestionar un JSON en PHP. Otra vez, y perdonar por repetirme, siento mucho haber tardado tanto tiempo en realizar este tercer tutorial, pero cuando estás de Erasmus tienes a tu disposición un nuevo mundo que explorar.

Este tutorial es el tercer tutorial de una serie de cuatro tutoriales sobre JSON. Puedes ver los títulos y sus enlaces a continuación:

  1. ¿Qué es y para qué sirve JSON?.
  2. Creación de un JSON a partir de una consulta en MySQL.
  3. Gestionar JSON en PHP.
  4. Ejemplo práctico de uso de JSON con OpenWeatherMap.

 

Para aprender a gestionar JSON en PHP vamos a dividir el tutorial 3 partes, el índice del tutorial será el siguiente:

  1. Usar la función json_decode para decodificar un JSON.
  2. Entender cómo funciona la función json_decode.
  3. Ejemplos de uso.

Así pues sin más preámbulos vamos a empezar con el primer punto.

Usar la función json_decode para decodificar un JSON.

Partiendo del tutorial anterior y suponiendo que tenemos un JSON generado como este:

[{"0":"1","id_fruta":"1","1":"Manzana","nombre_fruta":"Manzana","2":"100","cantidad":"100"},{"0":"2","id_fruta":"2","1":"Platano","nombre_fruta":"Platano","2":"167","cantidad":"167"},{"0":"3","id_fruta":"3","1":"Pera","nombre_fruta":"Pera","2":"820","cantidad":"820"}]

Vamos a usar la función json_decode sobre este JSON, para ello vamos a suponer que nuestro JSON es un JSONArray, es decir que es un array de datos, así pues, vamos a guardar en un array el resultado de decodificar el JSON.

$json = '[{"0":"1","id_fruta":"1","1":"Manzana","nombre_fruta":"Manzana","2":"100","cantidad":"100"},{"0":"2","id_fruta":"2","1":"Platano","nombre_fruta":"Platano","2":"167","cantidad":"167"},{"0":"3","id_fruta":"3","1":"Pera","nombre_fruta":"Pera","2":"820","cantidad":"820"}]';

$array = json_decode($json);

 

Entender cómo funciona la función json_decode.

Si nos remontamos al primer tutorial sobre JSON recordaremos que un JSON se compone de JSON Objects y de JSON Arrays. Así pues la función json_decode decodifica el String que le introducimos y separa los JSON Objects y los JSON Arrays de tal forma que una vez que se han separado (virtualmente) se vuelven a componer en un Array que en nuestro caso será la variable de salida $array.

Para observar que se ha generado un Array se puede usar la función “print_r” sobre la variable $array de salida.

print_r($array);

En nuestro ejemplo nos mostrará lo siguiente:

Array ( [0] => stdClass Object ( [0] => 1 [id_fruta] => 1 [1] => Manzana [nombre_fruta] => Manzana [2] => 100 [cantidad] => 100 ) [1] => stdClass Object ( [0] => 2 [id_fruta] => 2 [1] => Platano [nombre_fruta] => Platano [2] => 167 [cantidad] => 167 ) [2] => stdClass Object ( [0] => 3 [id_fruta] => 3 [1] => Pera [nombre_fruta] => Pera [2] => 820 [cantidad] => 820 ) )

Podemos como se han creado una key por cada campo de nuestro JSON, es decir podemos obtener el dato directamente escribiendo el índice del array o el nombre del mismo.

Ejemplos de uso.

A continuación se van a explicar varias maneras de obtener datos de un JSON así como de recorrer un array que contiene los datos de un JSON.

Obtener un dato directamente del Array.

echo $array[0]->nombre_fruta;

Obtenemos “Manzana”;

Recorrer y recuperar valores de un objeto JSON con foreach.

foreach($array as $obj){
        $id_fruta = $obj->id_fruta;
        $nombre_fruta = $obj->nombre_fruta;
        $cantidad = $obj->cantidad;
        echo $id_fruta." ".$nombre_fruta." ".$cantidad;
        echo "
";
}

El resultado de este bucle es el siguiente:

1 Manzana 100
2 Plátano 167
3 Pera 820

Recorrer y recuperar valores de un objeto JSON con un bucle for.

for($i=0;$i<count($array);$i++){ $id_fruta="$array[$i]-">id_fruta;
    $nombre_fruta = $array[$i]->nombre_fruta;
    $cantidad = $array[$i]->cantidad;
    echo $id_fruta." ".$nombre_fruta." ".$cantidad;
    echo "
";
}

El resultado es el mismo que tiene el apartado anterior

1 Manzana 100
2 Plátano 167
3 Pera 820

 

Bueno y esto es todo, hasta hoy hemos visto los principios básicos de un JSON, hemos creado un JSON a partir de una consulta MySQL y hemos gestionado el JSON creado para obtener los datos. En el siguiente tutorial vamos a recopilar todo lo aprendido mediante un ejemplo práctico completo.

Podéis descargar el código en el siguiente repositorio de github.

github-logo

 

Si te ha gustado el tutorial, compártelo en tus redes sociales y ayuda a que los conocimientos que compartimos con la comunidad llegue lo más lejos posible. Si tenéis alguna duda podéis contactar conmigo vía twitter(@alex_esquiva) o vía comentarios en el post.

¡Un saludo @alex_esquiva!

Artículos relacionados

JSON IV – Ejemplo práctico de uso de JSON con OpenWeatherMap.

En este tutorial, último del curso de JSON, vamos a crear un ejemplo práctico de uso de JSON con PHP y MySQL.


¿Quieres seguir aprendiendo?