viernes, 29 de junio de 2007

Intro a JSON

Recuerdo la primera vez que alguien me habló de JSON fue nada menos que Francisco Rosales (el tipo que más sabe de flash sobre estas pampas) y era justamente para realizar una implementación en cierto lugar con AJAX (por aquellos días ASP.NET AJAX no existía ni siquiera como ATLAS). Usábamos (usábamos digo pero era el que que sabía), usábamos todo esto comunicado contra un backend .net 1.1 por medio de JSON Todo esto viene a cuento para hablar de JSON. ¿Pero qué es JSON? vamos a la definción 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 XML. O sea que permite definir objetos con lo cual se toma como alternativa a XML, de echo Google, Yahoo, y el mismo ASP.NET AJAX lo utilizan, bueno vamos a ver un ejemplo tomado de Wikipedia
{
   "firstName": "John",
   "lastName": "Smith",
   "address": {
       "streetAddress": "21 2nd Street",
       "city": "New York",
       "state": "NY",
       "postalCode": 10021
   },
   "phoneNumbers": [
       "212 732-1234",
       "646 123-4567"
   ]
La ventaja con XML no radica en el tamaño ya que la misma estructura en XML tiene la misma cantidad de caracteres, la ventaja radica en que para recuperar el objeto "menu" con javascript hacemos esto: menu = eval('(' + json_datos + ')'); Hacer lo mismo con XML sería un infierno, no por escribir el parser que lo hacemos una vez y listo, sino porque es más lento para procesar. Por otro lado con XML + Schemma tenemos una riquísima precisión en los tipos de datos, cosa que en JSON se limita a ocho o nueve tipos de datos. Nos queda el problema del lado del servidor, bueno, nosotros lo hicimos mitan con Nii y mitad a mano porque no había por aquel entonces implementaciones que cubriesen nuestras necesidades, hoy esto no es necesario.