JSON contra serialize en PHP – Ventajas y convenientes

El otro día hablábamos de la serialización en PHP hablando de cómo cambiar la dirección de un sitio en WordPress. El cometido de esta función es muy parecido a JSON, es decir permitir intercambiar información manteniendo su estructura usando cadenas de texto. Si usas AJAX sabrás de lo que hablo.

Cuando trabajamos con PHP tenemos las dos opciones: serialize() y json_encode(). ¿Pero cuál es mejor? La respuesta no es una u otra, cada una de ellas tiene sus pros y sus contras, veamos:

  • JSON convierte los caracteres UTF-8 a secuencias de escape unicode, serialize() no
  • JSON no recuerda qué tipo de objeto está transportando (al restaurarse siempre son instancias de la clase estándar: stdClass).
  • serialize() permite el uso de las funciones mágicas __sleep() y __wakeup(), JSON no
  • JSON sólo almacena las propiedades públicas
  • JSON es más portable