Introduccion a JSON

(Ultimamente estoy posteando mucho sobre programacion web y JQuery, espero que me lo perdoneis, a mi me sirve de recordatorio y a otros tal vez para animarse a vivir en este mundo tan malo).

En programacion web, cuando queremos pasar informacion (parametros) desde el lado del cliente al lado del servidor empleamos principalmente dos metodos HTTP que son GET o POST.
Generalmente usamos para ello un formulario que el cliente rellena con los datos que queremos pasar.
El metodo POST se debe emplear cuando el volumen de informacion es elevado, p.ej queremos enviar el contenido de un fichero o una serie de parametros que ocupan varios bytes. El metodo GET se emplea cuando el numero de bytes es menor.
Seguro que te suena el metodo GET, Son listas de valores key=value, Asi que una URL es del estilo:

http://direccion_principal?parametro=valor&parametro2=valor2&parametro3=valor3...

Cuando la peticion llega al servidor, decodifica la URL y obtiene asi la lista de parametros y sus valores asociados.

Bien, … si empleamos el metodo GET es habitual que la forma de paso de parametros sea de 3 formas:

- lista de valores key=value, la mas habitual
- JSON, realmente es un string pero ya organizamos la informacion para que sea facilmente accesible
- XML, otro string que es un XML y que nos permite parsear a posteriori los valores.

Ejemplos:

- Lista de valores: Destino?nombre=Jose&Apellidos=Delgado&alias=piwi
- Json: Destino?json={nombre=Jose,Apellidos=Delgado,alias=piwi}
- XML: Destino?xml=<Parametros><Parametro id=nombre>Jose</Parametro>…

Usar uno u otro, ya depende del programador y de lo “a gusto” que se sienta con uno u otro metodo, no entraremos en “debate”. Pero todos buscan el mismo objetivo: el paso de parametros.

Aqui voy a hablaros de JSON (Javascript Object Notation) y del que podeis obtener mucha mas informacion en el siguiente enlace.

JSON es una forma de intercambio de datos. Y la ventaja que tiene, es que desde el lado de Javascript puede ser considerado como un objeto. Cuando lo tratemos sin embargo desde el lado del servidor, debremos tratarlo como si fuera un string.  Existen librerias segun el lenguaje que usemos que nos permiten genera JSON de manera muy simple a partir de un objeto o parsear un string JSON y convertirlo en un objeto.

Por ejemplo si quisieramos crear un objeto JSON desde Javascript podriamos ejecutar un codigo similar al siguiente:

<script>
    var a={"nombre":"jose","apellidos":"delgado","alias":"piwi"};
    alert (a.nombre);
    alert (a.alias);
</script>

Imprimiria los valores correspondientes y podriamos tratarlo desde Javascript como si fuera un objeto (nombre.atributo).

Si en cambio queremos enviarlo a un servidor, debemos convertir el objeto JSON a un string o definirlo directamente como string. En el caso de Javascript podemos emplear uno de los parsers que vimos en la pagina anterior.Por ejemplo importamos la libreria json2.js y ya podriamos ejecutar:

cadena=JSON.stringify(a);

que nos convertiria el objeto JSON de javascript en un string del estilo:

"{"nombre":"Jose","Apellidos":"Delgado":"alias":"Piwi" }"

el cual puede ser enviado al servidor para ser procesado posteriormente.
El asunto es mas complejo y esto es solo una introduccion, pero la idea es que veais como un objeto con sus atributos puede ser serializado a un string y despues a su vez, a posteriori ser “deserializado” de nuevo a objeto, a partir del string recibido. lo que hace que sea muy sencillo el acceso a sus metodos y atributos.

3 Respuestas a “Introduccion a JSON”


  1. 1 Hernan Enero 19, 2009 a las 12:36 pm

    Hola, necesito serializar un array de objetos que a su vez contiene entre sus tipos otro array. El metodo JSON.stringify me serializa solo los atributos y no el array. Existe alguna manera de hacerlo?
    Muchas gracias.


  1. 1 google-gson, una libreria Java para convertir JSON a Objetos Java y viceversa « Ubuntu Life Trackbacks en Octubre 24, 2008 a las 10:05 pm

Escribe un comentario




Mi Google Calendar de Estrenos de Cine

Ubuntu: For Desktops, Servers, Netbooks and in the cloud

TRABAJANDO EN EL NUEVO UBUNTU LIFE
Problemas en el servidor, me han obligado a abandonar temporalmente www.ubuntulife.net y ahora escribo solo en ubuntulife.wordpress.com, estoy trabajando en el nuevo sitio y espero añadir novedades. Sugerencias son bienvenidas. ( Lee mas )

WALLPAPERS LIFE ( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map

 

Septiembre 2008
L M X J V S D
« Ago   Oct »
1234567
891011121314
15161718192021
22232425262728
2930  

Blog Stats

  • 7,948,655 hits