JSON es un protocolo de intercambio de datos ligero, fácil de leer para humanos y máquinas.
Exiten parses de JSON para la mayoria de lenguajes de programación y para todos los más populares.
Ahora viene la prengunta clave, ¿Por qué usar JSON si el estandar habitual es XML?. JSON tiene algunas ventajas sobre XML que debemos conocer.
La primera es que los datos en JSON ocupan mucho menos que XML, porque aunque nadie discute que XML es un gran invento, añade bastante sobrecarga a los datos que queremos serializar. En esta página comentan cuales son las ventajas de JSON frente a XML.
Este es un ejemplo de los datos de una persona una persona en XML:
<persona>
<nombre>Rodrigo</nombre>
<apellido>Corral</apellido>
<genero>varón</genero>
<edad>29</edad>
</persona>
Y estos son los mismos datos en JSON:
{
«nombre» : «Rodrigo»,
«apellido» : «Corral»,
«genero» : «varón»,
«edad» : 29
}
Ahora la pregunta es, ¿qué tiene que ver JSON con AJAX?
El problema principal en AJAX es mover datos entre el servidor y el cliente, este problema se suele resolver usando XML. Es por todos conocido que en las aplicaciones AJAX en el cliente la programción se realiza casi siempre con JavaScript. Exiten diversas posibilidades para leer XML desde JavaScript, pero todas ellas son farragosas en mayor o menor medida y son bastante lentas y pesadas. Aquí es donde JSON, a mi modo de ver más brilla. JASON en esencia es JavaScript perfectamente correcto, esto nos permite que simplemente haciendo
var persona = eval(
‘({
«nombre» : «Rodrigo»,
«apellido» : «Corral»,
«genero» : «varón»,
«edad» : 29
})’
);
tengamos un objeto JavaScript perfectamente valido!!! Simplemente usando eval!!! A partir de este momento podemos haceder a los datos de una manera orientada a objetos, por ejemplo:
alert(«El nombre de la persona es: » + persona.nombre);
Esto tiene alguna implicaciones respecto a la seguridad, porque el eval de JavaScript acepta cualquier cádena valida que contenga código JavaScript. Para evitar esto problemas es mejor usar un parser de JSON para JavaScript, que solo acepta JSON valido. El parser permite hacer:
var persona = persona_como_Jason_string.parseJSON();
para reconstruir el objeto JavaScript desde su representación textual en JSON y
var persona_como_Jason_string = persona.toJSONString();
para obtener la representación JSON del objeto, por ejemplo para devolverlo usando técnicas AJAX al servidor.
¿Es o no es espectacular?
Pues esto no es todo evidentemente tenemos que generar el string que representa los datos que queremos mover desde el servidor al cliente y exporner una URL que permita obtener estos datos. No es que se una labor complicada, pero aún así tenemos ayuda. Existe una libreria llamada Jayrock , que implementa el protocolo JSON-RPC (similar a XML-RPC aunque más limitado) para C# y que nos permite de manera muy sencilla, usando un handler de ASP.NET y una serie de atributos devolver objetos JASON desde el servidor al cliente.
Vaya con la tontería, de un plumazo ahorra un 25% de tráfico. Que pijada más ingeniosa.
No lo conocía, pero es muy interesante. Todos los intentos por aligerar XML están bien, sobre todo para agilizar las interfaces web. En el futuro, y ahora mismo, la tendencia es llevar la funcionalidad de una IU tradicional a la web, por lo que hacen falta iniciativas así. Y otras como WPF y WPF/E que darán que hablar para esto.
La definición la encontramos en wikipedia, el porqué de la necesidad de usar AJAX, podemos…
La definición la encontramos en wikipedia, el porqué de la necesidad de usar AJAX, podemos sacarlo de
PingBack desde El ejercicio de la risa al rev??s » Innova Desarrollos informáticos
existen otras formas que no utilizen XML?.
Sabia mas o menos de json y esto era justo lo que buscaba, muchas gracias, exclente material aioz 😀
PingBack desde CODERS » JSON VS XML
es perfectamente valido usar eval para parsear el json a menos que tengamos la costumbre de autohackearnos, ya que el XMLHttpRequest solo permite hacer peticiones a URLs en nuestro propio dominio, solo sería necesario usar el eval si pudieramos hacer peticiones a otros dominios para evitar que nos hacken de dichos dominios.
haceder hace daño a la vista y extropea un buen blog….