> Manuales > Trabajar con JSON desde PHP

Información sobre las distintas librerías y opciones para utilizar la notación de objetos Javascript JSON en programas realizados con el lenguaje PHP.

JSON es una notación Javascript para escribir objetos que se ha hecho bastante popular en el mundo del desarrollo de webs y que se utiliza en diversos lenguajes de programación, componentes (habitualmente Ajax), etc. Su éxito se debe a que es una excelente forma para almacenar información que deseamos compartir entre distintos componentes o lenguajes de las aplicaciones web. Si trabajamos con Ajax y alguno de los frameworks Javascript existentes, ya habremos notado esta posibilidad y posiblemente ya estemos utilizando JSON o una notación similar.

JSON, cuyas siglas significan JavaScript Object Notation (en español Notación de Objetos de JavaScript), es un formato ligero, fácil de escribir o codificar, así como también es fácil de leer por los seres humanos. Desde Javascript podemos procesar directamente cualquier objeto JSON y existen librerías para la mayoría de los lenguajes de programación que tienen funciones para interpretar este formato. Por ello se ha adoptado universalmente. Para más información podemos visitar el sitio web de JSON en http://www.json.org/.

Esto quiere decir que con JSON podemos comunicar datos fácilmente entre scripts Javascript y scripts PHP. Por ejemplo, pensemos en una validación de formulario que se desea hacer con Ajax. Los datos del formulario se pueden enviar a PHP por medio de POST y luego podríamos desde PHP enviar a Javascript el resultado de validar esos datos en el servidor. Como la validación puede ser positiva o negativa, así como puede tener más o menos códigos de error y acciones a realizar dependiendo de la información procesada, el script PHP tiene que mandar una respuesta más o menos elaborada al script Javascript y una posibilidad es enviar esos datos desde PHP utilizando la notación JSON.

Disponibilidad de las funciones JSON en PHP

PHP dispone de varias funciones para hacer distintos tratamientos con notación de objetos JSON, que permite convertir un objeto PHP, o cualquier otro tipo de variable, a un string con notación JSON, así como crear un objeto PHP a partir de un string codificado con JSON.

En PHP, como decíamos, es posible producir y consumir datos cargados con notación JSON, por medio de unas funciones de las que dispone el lenguaje, que existen de manera predeterminada en los servidores modernos de PHP y que se pueden utilizar también en instalaciones antiguas de PHP, aunque con algún trabajo de instalación adicional.

A partir de PHP 5.2 las funciones JSON están disponibles siempre, pero si utilizamos por ejemplo PHP 4 tendríamos que instalarlas manualmente. Para ello existen varios paquetes de librerías, que provienen de diversas fuentes, que tienen funciones para tratar con JSON desde PHP.

Paquete JSON de PECL
Este paquete, del repositorio de librerías PHP PECL, es compatible con PHP 4.3.0 o superior. En versiones superiores a PHP 5.2 está disponible por defecto. En versiones anteriores del lenguaje se tendría que instalar de manera separada.

Librería JSON-PHP
Es una librería de funciones que se conoce también con el nombre de "Services_JSON". Originariamente escrita por Michal Migurski, en la actualidad se encuentra disponible dentro del framework PHP PEAR: http://pear.php.net/package/Services_JSON

JSON Lib en Zend Framework
Es una librería de funciones para tratamiento con JSON que forma parte del framework PHP Zend.

XML-RPC para PHP
Por medio de una extensión para la librería php-xmlrpc, también se puede tratar con notación de objetos JSON.

Las particularidades de cada sistema son ligeramente distintas. Cabe decir que la más interesante sería la primera, que forma parte de PECL, puesto que está escrita en C y por tanto será más rápida de ejecutarse, al formar parte de los componentes nativos de PHP. Como decimos sólo podremos disponer de ella a partir de PHP 5.2, pero en servidores antiguos tendríamos que instalarla aparte, lo que a menudo será complicado, o incluso imposible para sitios web en producción y en un alojamiento compartido.

Así que, si nuestro servidor PHP no dispone de las funciones JSON por estar poco actualizado, nos costará mucho menos esfuerzo y dolores de cabeza utilizar otra librería distinta a la básica de PECL. En este caso, por la facilidad de instalación, se recomendaría la utilización de la librería que viene en PEAR, que se puede descargar del propio sitio de PEAR, en la URL http://pear.php.net/package/Services_JSON

Nota: Hemos publicado en DesarrolloWeb.com en pasados artículos algunas referencias útiles para instalar PEAR y utilizar algunos componentes de este framework PHP.este framework PHP.

Existe un artículo muy interesante, aunque en inglés, que compara las diversas librerías existentes para usar JSON desde PHP, que contiene diversas informaciones técnicas, requisitos y un análisis del desempeño de cada una.

En el próximo artículo explicaremos cómo utilizar las funciones JSON en PHP por medio de las funciones nativas del lenguaje.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual