Manejo de JSON y Consumo de APIs en PHP
Aprende a serializar y deserializar datos JSON en PHP con json_encode y json_decode para construir y consumir APIs web modernas.
¿Por qué JSON es el Estándar de la Web?
JSON (JavaScript Object Notation) es el formato de intercambio de datos ligero, legible y universal por excelencia. Permite que aplicaciones backend escritas en PHP se comuniquen de forma transparente con clientes frontend (React, Vue, aplicaciones móviles o microservicios).
Las Dos Funciones Esenciales de PHP
1. json_encode($datos, $banderas)
Convierte arrays u objetos de PHP en una cadena de texto en formato JSON:
JSON_PRETTY_PRINT: Formatea el JSON con sangrías legibles.JSON_UNESCAPED_UNICODE: Mantiene acentos y caracteres especiales sin codificarlos en secuencias unicode como\u00e1.JSON_THROW_ON_ERROR: Lanza una excepción si los datos no pueden serializarse.
2. json_decode($cadenaJson, $asoc)
Convierte una cadena JSON en estructuras utilizables en PHP:
- Si el segundo argumento es
true, retorna un array asociativo (práctica recomendada en PHP moderno). - Si es
falseo se omite, retorna un objeto genérico de tipostdClass.
⚡ Ejemplo de Creación y Consumo de un Payload JSON
Serializa un catálogo de cursos hacia JSON con banderas de formato y luego deserialízalo para consumirlo:
<!DOCTYPE html>
<html>
<body>
<h2>JSON en PHP 8.3: Generación y Lectura de APIs</h2>
<?php
// 1. Estructura de datos en PHP (simulando respuesta de base de datos)
$academiaData = [
"plataforma" => "Kilopolis Academia",
"version" => "2.0",
"timestamp" => time(),
"cursos" => [
[
"id" => 101,
"titulo" => "Bootcamp Fullstack: PHP 8.3 & JS Moderno",
"cupos" => 25,
"precio" => 249.99,
"activo" => true
],
[
"id" => 102,
"titulo" => "Arquitectura de Software y Microservicios",
"cupos" => 15,
"precio" => 299.00,
"activo" => false
]
]
];
// 2. Serializar a formato JSON (Codificación)
$jsonOutput = json_encode(
$academiaData,
JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE
);
echo "<h4>1. Payload JSON generado con json_encode():</h4>";
echo "<pre style='background:#0f172a; color:#38bdf8; padding:12px; border-radius:6px; font-family:monospace; font-size:0.85rem; overflow:auto;'>";
echo htmlspecialchars($jsonOutput, ENT_QUOTES, 'UTF-8');
echo "</pre>";
// 3. Simulación de consumo: deserializamos la cadena JSON a array asociativo
echo "<hr>";
echo "<h4>2. Datos recuperados y procesados con json_decode(\$json, true):</h4>";
$recuperado = json_decode($jsonOutput, true);
echo "<p>Plataforma origen: <strong>{$recuperado['plataforma']}</strong> (Versión {$recuperado['version']})</p>";
echo "<table border='1' cellpadding='8' cellspacing='0' style='border-collapse:collapse; width:100%; max-width:550px;'>";
echo "<tr style='background:#f1f5f9;'><th>ID</th><th>Título del Curso</th><th>Precio</th><th>Estado</th></tr>";
foreach ($recuperado['cursos'] as $item) {
$badge = $item['activo']
? "<span style='color:#16a34a; font-weight:bold;'>Activo</span>"
: "<span style='color:#dc2626; font-weight:bold;'>Cerrado</span>";
echo "<tr>";
echo "<td>#{$item['id']}</td>";
echo "<td><strong>{$item['titulo']}</strong></td>";
echo "<td>\${$item['precio']} USD</td>";
echo "<td>{$badge}</td>";
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual Completo de PHP y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.