jSon
Visita este artículo en http://www.estadobeta.com/2006/05/11/json/
Por Ismael en Desarrollo, artículos, javascript, tipsjSon (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:
<persona>
<nombre>Juan</nombre>
<apellido>Gonzales</apellido>
<edad>23</edad>
</persona>
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.
- Servicios:
- Comentarios RSS
- Menear!
- Del.icio.us

5/11/2006 at 4:04 pm
[…] jSon (Javascript Object Notation) se refiere a una forma alternativa y más sintética de escribir código javascript […]
5/15/2006 at 1:24 am
[…] A diferencia de crear objetos directamente, la creación de un prototipo nos permite diseñar una “plantilla” para estructurar el comportamiento de multiples instancias - una clase -. Al prototipo de Persona podemos agregar nuevas operaciones que estarán disponibles en todas las instancias de la Clase. […]
7/26/2006 at 5:54 pm
[…] El primer argumento es la id de un elemento. El segundo es un objeto javascript, escrito en notación literal o jSon. […]
8/4/2006 at 9:27 pm
[…] Lo que sigue es una descripción de los principales aportes de Prototype. Para entenderla debes estar familiarizado con Javascript y los conceptos de función / método, variable y nociones básicas de Orientación a Objetos. También recomiendo que leas este y este artículo de EstadoBeta, si no lo has hecho ya. […]
3/7/2007 at 11:37 am
Pues yo hubiera jurado que eso que comentas lo llamaban namespaces. Umm… ya se:
http://earthcode.com/blog/2006/02/javascript_namespaces.html
Coincido contigo con lo que JSON es algo así como un XML pero con menos metadata.
Saludos!!
Marc
3/7/2007 at 11:44 am
Marc: las dos cosas. jSon es la sintaxis particular que muestro en este artículo. Los “namespaces” o Espacios de Nombre son un concepto usado en muchos lenguajes y consiste en definir “contenedores” de código con nombres únicos, de manera de evitar la coincidencia de nombres de variables o métodos. Los namespaces son parte integral de la estructura de clases de Java, por ejemplo. En Javascript no son parte del lenguaje pero se pueden “emular” usando objetos simples que contienen funciones u otros objetos.
9/9/2007 at 6:44 pm
muy bueno este post , usted sabe donde yo puedo encuentrar uno tutorial de el json?
gracias
9/19/2007 at 6:38 pm
[…] Entender que es JSON (tuto, ejemplos…) […]
10/19/2007 at 2:54 am
[…] También puedes consultar el siguiente manual y este mini tutorial. […]
10/28/2007 at 8:01 am
[…] Ventanas, mensajes emergentes, grillas, date pickers y un sin numero de utilidades son todas creadas en tiempo de ejecución. Alguien preguntará ¿y los datos?. Los datos son obtenidos con mucho AJAX a través de XML y/o JSON. […]
4/17/2008 at 2:59 am
haber….investigando con este tema…de JSON me tope con la bella microsoft y sus “paginas” y no creo que nada mal…
haber…un ejemplo de esa web hace lo siguiente .:
var continents = new Array();
continents.push(”Europe”);
continents.push(”Asia”);
continents.push(”Australia”);
continents.push(”Antarctica”);
continents.push(”North America”);
continents.push(”South America”);
continents.push(”Africa”);
alert(”The JSON representation of the continents array is: ” +
continents.toJSONString());
haber toncs…pq no funciona ???…tiene q ver con el “eval()” ???…si fueran tan amables en decirme..q es lo q pasa….o tan bruto soy ??…:-s
4/17/2008 at 3:01 am
ops….
esta web es la q hago referencia…si alguien le interesa…XD
http://www.microsoft.com/spanish/msdn/articulos/archivo/180607/voices/bb299886.mspx
4/17/2008 at 7:19 am
@Alan: Que “eval()”?
toJSONStringno es una funcion nativa de Javascript. Tienes que implementarla tu mismo.4/17/2008 at 9:14 am
toJSONString que hace referencia el link, dícise que fue sacado de aquí. cabe hacer notar que en el sitio oficial de json.org, no encontré por ningún lado un enlace a ese script que se menciona en M$. como llegaron ellos ahí? ni idea.
ahora bien, lo bajé y ahí si funciona el ejemplo que pregunta @alan.
como bien dice Ismael, toJSONString no es nativo de Javascript, y con script como los mencionados puedes llegar a ello. Librerías como “mootools también lo implementan.
saludos!
4/17/2008 at 9:17 am
ups, el link de mootools quedó mal…aqui va denuevo:
http://www.mootools.net