¿Quieres registrarte?

Uso de JSON en Flash Lite

Por: Elecash
29 de Enero del 2009

Los que trabajamos con Flash Lite sabemos los grandes problemas que hay a la hora de utilizar XMLs e intentar liberar memoria.

Como alternativa podemos usar JSON (JavaScript Object Notation), un sistema de intercambio de archivos basado en JavaScript que se puede utilizar en reemplazo a XML.

Las ventajas de JSON enfrente a XML cuando trabajamos con Flash Lite son:


La gran desventaja es que el parseo se hace en cliente pero he hecho pruebas y lleva unos pocos milisegundos, generalmente menos de 100ms, con lo que estamos ante unos tiempos muy aceptables.

La sintaxis es bastante fácil, por ejemplo, esto sería un archivo XML:

Código :

<config>
   <item>
      <nombre>Pepito</nombre>
      <apellidos>Grillo</apellidos>
      <edad>120</edad>
   </item>
   <item>
      <nombre>Matusalen</nombre>
      <apellidos>McKenzie</apellidos>
      <edad>4000</edad>
   </item>
</config>


Y esta su versión en JSON:

Código :

{ "config":
   { "item":
      [
      {
         "nombre" : "Pepito",
         "apellidos" : "Grillo",
         "edad" : "120"
      },
      {
         "nombre" : "Matusalen",
         "apellidos" : "McKenzie",
         "edad" : "4000"
      }
      ]
   }
}


De esta forma podríamos cargar un archivo JSON y parsearlo con una clase JSON.as de código abierto que nos dan en la web oficial de JSON.

Código :

import mx.utils.Delegate;

var oResult:Object;
var dataLoader:LoadVars;
dataLoader = new LoadVars();
dataLoader.onLoad = Delegate.create(this, onLoadData);
dataLoader.sendAndLoad("ot.txt", dataLoader, "POST");

function onLoadData():Void
{
   trace("BEGIN :: " + getTimer());
   var json:JSON = new JSON();
   var jsonStr:String = dataLoader.toString();
   jsonStr = unescape(jsonStr.split("=&onLoad=[type Function]")[0]);
   
   
   oResult = json.parse(jsonStr);
   
   for (var i=0; i<oResult.config.item.length; i++)
   {
      trace("nombre: " + oResult.config.item[i].nombre);
      trace("apellidos: " + oResult.config.item[i].apellidos);
      trace("edad: " + oResult.config.item[i].edad);
      trace("=========================");
   }
   
   dataLoader = null;
   
   trace("END :: " + getTimer());
}


Fácil de usar, ligero y perfecto para aplicaciones Flash Lite.

En BlocketPc publiqué un análisis sobre lo que ocupa en memoria XML y JSON, así como unos ejemplos de descarga que son un buen complemento a este tip ;)

Un saludo!

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas xml flashlite moviles telefonos json

Comentarios | Enviar un comentario
Muy bueno Elecash ;)
Por: Zguillez
Muy bueno!
Por: leobaraldi-blog
Gracias Elecash super útil!!!
Por: eparada
Optimización Rlz!!!
Buena profe Raul ^^
Por: Otaku RzO
Me cae de perlas ahora que estoy estudiando desarrollo para mobiles.
Por: Xyrer
Genial con el tema de liberar la memoria ^^ bien tio
Por: eldervaz
Gracias, está interesante
Por: Adsl5mb
Quiesiera saber si al utilizar JSON - Javascript Object Notation - existe o tiene alguna desventaja
Por: Peter-blog
Desde ya gracias muy buena la información y ejemplo anterior
Por: Peter-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.