La maravilla de JSON vs XML
November 28, 07 by serumaxTengo mucho código para postear, pero me aguantaré unos días para hacerlo detalladamente en blogandia. Ahora sólo quiero sacrame un poco las ganas de hablar de JSON.
Algunas de las razones porque vale la pena trabajar con este tipo de notación son:
1-. Por sobre todo: orden. Trabajar javascript con JSON es por lejos más ordenado y simple que hacerlo de la forma clásica. A este orden “visual/mental” hay que agregar un punto tan o más importante que mi manía personal por el código elegante y ordenado: los nombres de las variables y funciones dificilmente interfieren con los nombres de variables y funciones de otras aplicaciones javascript que coexisten generalmente en un sitio web.
Por ejemplo, es perfectamente posible el siguiente escenario:
var aplicacion_uno = {
cargando : function(){
//código de esta funcion;
},
hide : function(){
$$(’ul[class=hide]’).map(function(s){$(s.id).hide();});
}
}var aplicacion_dos = {
cargando : function(){
//código de esta funcion;
},
hide : “se traduce como esconder”
}
2-. Para trabajar con gran cantidad de datos dinámicos de forma asincrónica es mucho más rápido que hacerlo con XML, en pruebas preliminares con firebug, para la siguiente consulta el tiempo de respuesta es de 164ms.
[{”modelo_generico”:”Chevrolet Corsa”,”t1″:”25.800″,”t2″:”21.900″,”t3″:”17.955″,”t4″:”15.750″,
“zonal”:”RENT A CAR ANTOFAGASTA”,”patente”:”WV-9955″,”fecha_inicio”:”2007-12-05″,
“fecha_termino”:”2007-12-15″},
{”modelo_generico”:”Chevrolet Corsa”,”t1″:”25.800″,”t2″:”21.900″,”t3″:”17.955″,”t4″:”15.750″,
“zonal”:”RENT A CAR ANTOFAGASTA “,”patente”:”WV-9960″,”fecha_inicio”:”2007-12-15″,
“fecha_termino”:”2007-12-20″}]
Mientras que para una cantidad evidentemente menor de datos en xml la respuesta menor que he obtenido es de 544ms.
<xml>
<contenido>
<status>ok</status>
<precio>45000</precio>
<pasajeros>1</pasajeros>
<dolar470</dolar>
</contenido>
</xml>
3-. Si bien la forma de pasar los datos de un lado a otro es básicamente la misma para JSON y XML (Ajax.Request o $j.ajax con prototype y jquery respectivamente), la disponibilidad de ellos es radicalmente distinta. Mientras que con XML hay que parsear los datos según las etiquetas:
xmlparse : function(responseXMLCli){
var xml=responseXMLCli.responseXML.documentElement;
var item=xml.getElementsByTagName(’contenido’)[0];
var pasajero=item.getElementsByTagName(’pasajero’)[0].firstChild.data;
alert(pasajero)
}
con json quedan disponibles de inmediato
jsonready : function(data){
alert(data.pasajero)
}
