Saltar al contenido

¿Qué es la serialización de datos?

Nuestros investigadores estrellas agotaron sus reservas de café, por su búsqueda diariamente por la respuesta, hasta que Emiliano halló la contestación en GitLab y en este momento la compartimos con nosotros.

Solución:

¿Qué es la serialización?

La serialización codifica objetos en otro formato.
por ejemplo tienes un array en PHP así:

$array = array("a" => 1, "b" => 2, "c" => array("a" => 1, "b" => 2));

Y luego desea almacenarlo en un archivo o enviarlo a otra aplicación.

Hay varias opciones de formato, pero la idea es la misma: El array tiene que ser codificado (o podría decir “traducido”), en texto o bytes, que pueden escribirse en un archivo o enviarse a través de la red.
Por ejemplo, en PHP, si usted:

$data = serialize($array);

obtendrás esto:

a:3:s:1:"a";i:1;s:1:"b";i:2;s:1:"c";a:2:s:1:"a";i:1;s:1:"b";i:2;

Este es el formato de serialización particular de PHP que PHP entiende, y funciona a la inversa, por lo que puede usarlo para deserializar objetos.
Por ejemplo, almacenó un serializado array en un archivo, y lo quiere de vuelta en su código como un array:

$array = unserialize($data);

Pero podría elegir un formato de serialización diferente, por ejemplo, JSON:

$json = json_encode($array);

te dará esto:

"a":1,"b":2,"c":"a":1,"b":2

El resultado no solo es fácil de guardar, leer por el ojo humano o enviar a través de la red, sino que también es comprensible para casi todos los demás lenguajes (JavaScript, Java, C#, C++, …)

Conclusión

La serialización traduce objetos a otro formato, en caso de que desee almacenar o compartir datos.

¿Hay situaciones en las que no puede hacer nada más que serializarlo?

No. Pero la serialización suele facilitar las cosas.

¿Son los formatos JSON y PHP los únicos formatos posibles?

No, no, no y una vez más no. Hay un montón de formatos.

  • XML que tiene sucesores como SOAP, WSDL, etc. (que tienen un propósito particular)
  • Bytes, Protobuf, etc.
  • Yaml
  • Sus propios formatos (puede crear su propio formato para la serialización y usarlo, pero eso es algo muy importante y no vale la pena, la mayoría de las veces)

La serialización es el proceso de convertir algún objeto en memoria a otro formato que podría usarse para almacenar en un archivo o enviarse a través de la red. La deserialización es el proceso inverso, lo que significa que la instancia del objeto real se restaura a partir de la representación serializada dada del objeto. Esto es muy útil cuando se comunica entre varios sistemas.

El formato de serialización podría ser interoperable o no interoperable. Los formatos interoperables (como JSON, XML, …) permiten serializar algún objeto usando una plataforma determinada y deserializarlo usando una plataforma diferente. Por ejemplo, con JSON podría usar javascript para serializar el objeto y enviarlo a través de la red a un script PHP que deserializará el objeto y lo usará.

los serialize() La función PHP utiliza un formato no interoperable. Esto significa que solo se puede usar PHP para serializar y deserializar el objeto.

Podrías usar el json_encode y json_decode() funciones para serializar/deserializar objetos PHP utilizando el formato interoperable JSON.

La serialización es el proceso de convertir datos (por ejemplo, variables) en una representación como un stringque se puede escribir y leer fácilmente desde, por ejemplo, un archivo o la base de datos.

¿Casos de uso? Hay muchos, pero generalmente gira en torno a la idea de tomar un complejo, anidado array u objeto y convertirlo en un simple string que se puede guardar y leer más tarde para recuperar la misma estructura. Por ejemplo, siempre que tenga en php:

$blub = array();
$blub['a'] = 1;
$blub['a']['b'] = 4;
$blub['b'] = 27;
$blub['b']['b'] = 46;

En lugar de pasar por cada array miembro individualmente y escribirlo uno podría simplemente:

$dataString = serialize($blub);

Y el serializado array está listo para ser escrito en cualquier lugar como un simple stringde tal forma que al recuperar este string de nuevo y haciendo unserialize() encima obtienes exactamente lo mismo array estructura que tenía antes. Sí, es realmente así de simple.

No se te olvide recomendar este artículo si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *