Trabajo con JSON en PHP: análisis y serialización para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a JSON y PHP



JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos que se ha convertido en el estándar de facto para la comunicación entre servidores web y clientes. En el desarrollo web moderno con PHP, te encontrarás con JSON en todas partes: desde solicitudes API hasta archivos de configuración y almacenamiento de datos estructurados.



En este artículo, analizaremos dos procesos fundamentales para trabajar con JSON en PHP:



  • Serialización — conversión de un array u objeto de PHP a una cadena JSON (función json_encode()).
  • Análisis (deserialización) — conversión inversa de una cadena JSON a una variable de PHP (función json_decode()).


El material está orientado a desarrolladores principiantes de PHP, por lo que iremos de lo simple a lo complejo, con ejemplos de código detallados.



Serialización de datos: función json_encode()



La serialización es el proceso de convertir datos desde la representación interna de PHP (arrays, objetos) a una cadena en formato JSON. Esto es necesario cuando deseas enviar datos al cliente (navegador, aplicación móvil) o guardarlos en un archivo/base de datos en un formato universal.



Conversión de un array a JSON



El caso más simple es la serialización de un array asociativo:



<?php$user = [    "name" => "Iván Petrov",    "age" => 28,    "email" => "ivan@example.com",    "is_active" => true];

$jsonString = json_encode($user, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);echo $jsonString;?>


Resultado de la ejecución:



{    "name": "Iván Petrov",    "age": 28,    "email": "ivan@example.com",    "is_active": true}


Observa las banderas:

  • JSON_UNESCAPED_UNICODE — permite conservar caracteres cirílicos (sin esta bandera, los caracteres rusos se convertirían en \\uXXXX).
  • JSON_PRETTY_PRINT — formatea la salida con sangrías para facilitar la lectura (útil para depuración, pero aumenta el tamaño de la cadena).


Conversión de un objeto a JSON



Los objetos de PHP también se pueden serializar. En este caso, solo se incluirán las propiedades públicas:



<?phpclass Product {    public $id;    public $title;    private $secretPrice; // no se incluirá en JSON

public function __construct($id, $title, $price) { $this->id = $id; $this->title = $title; $this->secretPrice = $price; }}

$product = new Product(1, "Portátil", 75000);echo json_encode($product, JSON_UNESCAPED_UNICODE);// Salida: {"id":1,"title":"Portátil"}?>


Trabajo con estructuras anidadas



JSON admite anidamiento. Los arrays de PHP de cualquier profundidad se convierten correctamente:



<?php$data = [    "company" => "TechCorp",    "employees" => [        ["name" => "Ana", "position" => "Desarrolladora"],        ["name" => "Boris", "position" => "Diseñador"]    ],    "address" => [        "city" => "Moscú",        "street" => "Tverskaya"    ]];

echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);?>


Análisis de JSON: función json_decode()



El análisis (deserialización) es el proceso inverso: a partir de una cadena JSON obtenemos datos con los que PHP puede trabajar.



Obtener un objeto



Por defecto, json_decode() devuelve un objeto de la clase stdClass:



<?php$jsonString = '{"name":"Iván Petrov","age":28,"email":"ivan@example.com"}';$user = json_decode($jsonString);

echo $user->name; // Iván Petrovecho $user->age; // 28echo $user->email; // ivan@example.com?>


Obtener un array



Si se pasa el segundo argumento true, la función devuelve un array asociativo:



&l                

Blogs

Book Recommendations