01 octubre 2010

Introducción a JSON, por Hugo González


Ampliando la entrega anterior, ahora escribiré JSON (JavasCript Object Notation). Este es un formato ligero de intercambio de datos. Es muy simple de leer por los humanos y muy simple de generar e interpretar para las máquinas.

JSON es un formato de texto independiente del lenguaje en que se use, pero utiliza convenciones que son ampliamente conocidos por los programdores de C, C#, Java, JavaScript, Perl, Python y muchos otros, y esto hace que sea un lenguaje ideal para el intercambio de datos.

JSON está constituido por 2 estructuras:
  1. Una colección de pares nombre / valor. Conocido en algunos lenguajes como objeto, registro, estructura, diccionario o arreglo asociativo.
  2. Una lista ordenada de valores. Esto se implementa con arreglos, vectores o listas.

Estas estructuras on universales, y virtualmente todos los lenguajes de programación las soportan.

Actualmente existen MUCHAS librerias para distintos lenguajes de programación que soportan JSON, logrando que sea mucho más fácil utilizarlo en el intercambio de información.

El siguiente ejemplo muestra como se expresaria en JSON un objeto menu, que contiene un identificador y otros objetos relacionados al el:


{"menu":
{
"id": "archivo",
"value": "Archivo",
"popup": {
"menuitem":
[
{"value": "Nuevo", "onclick": "CreateNewDoc()"},
{"value": "Abrir", "onclick": "OpenDoc()"},
{"value": "Cerrar", "onclick": "CloseDoc()"}
]
}
}
}


Estos datos podrían utilizarse para identificar como ha de funcionar un menu en una aplicación, o bien, representar el comportamiento de un componente.

JSON se utiliza ampliamente en bases de datos NOsql, como couchdb o mongodb, y en API's web como la de bit.ly. Se utiliza en aplicaciones cliente/servidor o en base de datos distribuidas, de una forma ligera permite el intercambio de datos entre diferentes lenguajes e incluso plataformas.

Para concluir un ejemplo de uso en bit.ly:

Bit.ly es un servicio de "acortamiento" de urls, y lo puedes utilizar en la web, o desde alguna aplicación usando su API pública, más información en: http://code.google.com/p/bitly-api/

Esta API es un servicio web REStfull (será el tema de la siguiente entrega), que se puede mandar llamar con una petición web, y el resultado lo entrega en formato json.

Petición para acortar:
http://api.bit.ly/v3/shorten?login=upslpdemo&apiKey=R_b9fe9e8d65397fc3754931ac5dee2c83&longUrl=http%3A%2F%2Fwww.upslp.edu.mx%2F&format=json

la respuesta en json:

{ "status_code": 200, "status_txt": "OK", "data": { "long_url": "http:\/\/www.upslp.edu.mx\/", "url": "http:\/\/bit.ly\/am1pQi", "hash": "am1pQi", "global_hash": "dxGiih", "new_hash": 1 } }

Esta nos dice que fue exitosa la petición, y nos regresa el url acortado http://bit.ly/am1pQi


Esta petición se puede realizar desde el navegador directamente, una aplicación de escritorio o desde un sitio web utilizando AJAX por ejemplo; y luego interpretar los resultados del "campo" url.

Nota: el usuario y la apiKey son válidas y fueron creadas exclusivamente para esta entrega, luego de algunas semanas posiblemente se desactiven.


Sigan estudiando y hasta la próxima.

2 comentarios: