JSON es un formato de intercambio de datos muy ligero, su uso hoy en día rivaliza con XML. Dado que se puede utilizar en una gran cantidad de lenguajes, hoy vamos a aprender como hacerlo en PHP de una forma muy fácil (soportado desde la versión 5.2.0) y, con muy pocas líneas de código ¡Manos a la obra!
Preparando el archivo JSON que vamos a utilizar
En la raíz de nuestro proyecto, guardaremos el siguiente archivo como empleados.json:
{
"empleados":{
"Emp1":{
"ID": 1,
"Nombre": "Juan Camilo Pardo",
"Ingreso": "2012-01-02",
"Puesto": "Vendedor"
},
"Emp2":{
"ID": 2,
"Nombre": "Johana Peña limón",
"Ingreso": "2009-04-22",
"Puesto": "Vendedor"
},
"Emp3":{
"ID": 3,
"Nombre": "Gilberto Cañedo López",
"Ingreso": "2009-09-17",
"Puesto": "Vendedor"
}
}
}
El cual luce así:
Mostrando JSON en una tabla HTML
Primero, vemos a cargar nuestro archivo JSON:
$contenido = file_get_contents("empleados.json");
Luego lo codificamos a UTF-8 si es necesario
$con = utf8_encode($contenido);
Luego pasamos el contenido a un arreglo.
$datos = json_decode($con, true);
Ahora, revisamos cuantos registros hay
$hay = count($datos["empleados"]);
Después lo pasamos a otra variable para manejarlo más fácil
$trabajadores = $datos["empleados"];
Ahora, insertamos una tabla HTML con títulos, pero con un <tbody> vacío.
<table>
<thead>
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Fecha Ingreso</th>
<th>Puesto</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Ahora, dentro del <tbody> lo revisamos con un foreach
foreach($trabajadores as $empleado){
echo "<tr>";
echo "<td>$empleado[ID]</td>";
echo "<td>$empleado[Nombre]</td>";
echo "<td>$empleado[Ingreso]</td>";
echo "<td>$empleado[Puesto]</td>";
echo "</tr>";
}
Finalmente, mostramos en un párrafo normal, la cantidad de registros que encontramos en nuestro archivo
<p>Empleados en total <strong><?= $hay; ?></strong></p>
¡El resultado salta a la vista!
Descarga el código completo
Si lo necesitas, puedes descargar el código completo de este artículo para probar.
¿Te ha resultado? ¿Tuviste algún problema? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.
Docente, IT Manager, Blogger & Developer. Escribo por diversión, educo por pasión. | Grandstanding is not my thing.