jueves, agosto 10, 2006

Notacion JavaScript (jSon)

jSon (Javascript Object Notation) se refiere a una forma alternativa y más sintética de escribir código javascript. Por ejemplo, la definición de un objeto y sus atributos en forma tradicional:


var obj = new Object();
obj.nombre = "Juan";
obj.getNombre = function(){
return this.nombre;
}

…Puede reescribirse en jSon, de la siguiente forma:


var obj = {
nombre: "Juan",
getNombre: function(){
return this.nombre;
}
}


Esto, porque en Javascript los objetos no son más que un “hash”. Un “hash” es una colección de pares nombre/valor separados por coma (también conocido como array asociativo).


var Persona = {nombre:"Juan",apellido:"Gonzales",edad:23};
copia_nombre = Persona.nombre; // "Juan"
copia_edad = Persona.edad; // "23"

El valor de cada atributo puede ser un String, un numero o incluso una función, un array u otro objeto. En javascript puedes asignar una función a una variable. En realidad puedes asignar cualquier tipo de datos a una variable.


var personas = {
nombres: ["Juan","Andres","Julia"], // un array
getNombreAleatorio: function(){ // una función
return this.nombres[Math.floor(Math.random()*this.nombres.length)];
}
}
var nombre = personas.getNombreAleatorio(); // Un nombre al azar de personas.nombres

La sintaxis de jSon puede ser muy conveniente para escribir código más compacto y portable. Pero jSon no es sólo útil para Javasript: al ser básicamente un formato estrucurado de datos (ya que los objetos javascript son básicamente colecciones estructuradas de datos), jSon está siendo usado cada vez más como transporte de datos entre aplicaciones, preferido algunas veces por sobre XML por su simpleza. Por ejemplo, para el XML:



Juan
Gonzales
23

Podemos escribir el equivalente recién expuesto, en jSon:


var Persona = {nombre:"Juan",apellido:"Gonzales",edad:23}

Esto es especialmente ventajoso para las aplicaciones Ajax (que cargan datos externos). Si los datos están formateados en jSon, al ser inyectados a la aplicación javascript quedan inmediátamente disponibles como objetos javascript, evitándose el proceso de parseo -interpretación y conversión - de los datos XML.

Etiquetas:

0 Comentarios:

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal