Delirios de un Informático

Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003

Introducción a JSON

votar
Archivado en JavaScript con fecha 9/Jun/2006 - 2 comentarios

JSON empieza a pegar fuerte ya que combinándolo con Ajax las posibilidades son infinitas. Según la Wikipedia:

JSON, acrónimo de “JavaScript Object Notation”, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de Javascript pero no requiere el uso de Javascript.

Básicamente JSON proporciona una manera sencilla de convertir matrices, objectos o variables en general desde cualquier lenguaje a Javascript mediante una representación en texto plano la variable que luego es interpretada por el motor Javascript.

Los que programeis en PHP conocereis de sobra la función serialize, que permite convertir una variable en texto plano que puede almacenarse en un archivo o una base de datos para recuperarla tal cual ( las variables de sesión de PHP se guardan así ). Pues esto es exactamente lo mismo.

Por ejemplo, partamos de esta matriz en PHP:

$matriz = array(256, 512, array('p1'=>256, 'p2'=>512));

Se realiza la transformación y se interpreta. Desde Javascript:

alert(matriz[0]);
alert(matriz[2].p2);

El primer alert mostraría 256 y el segundo 512. Como se ve, las matrices asociativas se convierten a objetos en Javascript debido a la carencia de éste. El resto de variables se mantiene.

¿Y cuál es la utilidad real de esto?. Imaginad un formulario para introducir los datos de una persona. Al meter el NIF se comprueba que exista en la base de datos. Si es así se cargan los datos mediante Ajax y JSON y se autorrellena el formulario permitiendo actualizar los datos.

¿Y cómo se usa esto?. Necesitaremos las dos partes: un codificador en nuestro lenguaje favorito que puede encontrarse en los enlaces de JSON.org ( Para PHP he usado tanto la extensión php-json en mi servidor como la clase Services_JSON ) y el descodificador en Javascript, que añade el método parseJSON() al objeto String.

Un ejemplo simple con la extensión php-json:

<script type="text/javascript">
datos = '<?php echo json_encode(array('nombre'=>'David')); ?>';
datos = datos.parseJSON();
alert(datos.nombre);
</script>

Esto es aplicable a Ajax simplemente haciendo que la URL consultada devuelva variables serializadas.

Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons