Codificación y decodificación JSON
Convierta matrices de PHP a JSON y analice respuestas JSON con json_encode/json_decode.
Codificación y decodificación JSON es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué es JSON?
JSON (JavaScript Object Notation) es un formato de datos ligero utilizado para la comunicación entre API y los archivos de configuración. PHP incluye funciones integradas para codificarlo y descodificarlo.
json_encode()
Convierte un valor de PHP (matriz, objeto o escalar) en una cadena JSON.
<?php
$data = ["name" => "Alice", "age" => 30, "active" => true];
$json = json_encode($data);
echo $json; // {"name":"Alice","age":30,"active":true}json_decode()
Analiza una cadena JSON y devuelve un valor de PHP. De forma predeterminada, devuelve objetos stdClass; pase true como segundo argumento para obtener matrices asociativas.
<?php
$json = '{"name":"Alice","age":30}';
$obj = json_decode($json); // stdClass
$arr = json_decode($json, true); // associative array
echo $arr["name"]; // "Alice"Formateo de JSON
Utilice el flag JSON_PRETTY_PRINT para formatear la salida de forma legible para las personas.
<?php
$json = json_encode(["a" => 1, "b" => 2], JSON_PRETTY_PRINT);
echo $json;
// {
// "a": 1,
// "b": 2
// }Flags útiles de json_encode
Flags habituales: JSON_UNESCAPED_UNICODE (conserva UTF-8 tal cual), JSON_UNESCAPED_SLASHES (no añade una barra invertida antes de /) y JSON_THROW_ON_ERROR (lanza una excepción si se produce un error).
<?php
$json = json_encode(["url" => "https://example.com/path"],
JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);Gestión de errores
Compruebe json_last_error() después de codificar o decodificar, o utilice JSON_THROW_ON_ERROR para obtener una excepción automáticamente.
<?php
try {
$data = json_decode($input, true, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
echo "Invalid JSON: ".$e->getMessage();
}Codificación de objetos
Los objetos se codifican como objetos JSON. De forma predeterminada, solo se incluyen las propiedades públicas. Implemente JsonSerializable para controlar la serialización.
<?php
class Point implements \JsonSerializable {
public function __construct(
private float $x, private float $y
) {}
public function jsonSerialize(): mixed {
return ["x" => $this->x, "y" => $this->y];
}
}
echo json_encode(new Point(1.0, 2.5)); // {"x":1,"y":2.5}Estructuras anidadas
JSON admite estructuras anidadas. Los arrays de PHP profundamente anidados se codifican sin problemas como objetos o arrays JSON anidados.
<?php
$order = [
"id" => 1,
"items" => [
["sku" => "A1", "qty" => 2],
["sku" => "B3", "qty" => 1],
],
];
echo json_encode($order, JSON_PRETTY_PRINT);Profundidad de decodificación
El tercer parámetro de json_decode establece la profundidad máxima de recursión (512 de forma predeterminada). Es posible que el JSON muy profundo requiera un límite mayor.
JSON_NUMERIC_CHECK
El flag JSON_NUMERIC_CHECK convierte las cadenas numéricas en números durante la codificación. Utilícelo con cuidado: podría modificar los números de teléfono.
Procesamiento de JSON en streaming
Para archivos JSON muy grandes, utilice una biblioteca de análisis en streaming (por ejemplo, halaxa/json-machine) en lugar de cargar el archivo completo con json_decode.
Resumen
json_encode convierte valores de PHP en cadenas JSON. json_decode analiza JSON. Utilice JSON_THROW_ON_ERROR para gestionar los errores de forma segura.
Comprobación rápida
¿Cómo obtiene un array asociativo a partir de json_decode?
Preguntas frecuentes
¿La lección «Codificación y decodificación JSON» es gratis?
Sí — el texto completo de «Codificación y decodificación JSON» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Codificación y decodificación JSON»?
Convierta matrices de PHP a JSON y analice respuestas JSON con json_encode/json_decode. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Codificación y decodificación JSON»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Codificación y decodificación JSON
- Realización de solicitudes HTTP con cURL
- Gestión de respuestas y errores de API
- Construcción de un cliente de API sencillo