2009-10-16 3 views

Respuesta

5

JSON suele ser un método de codificación de datos más eficiente que XML. Esto sería importante si el tiempo de descarga importó a su aplicación.

Otra consideración es si la sintaxis de la consulta E4X tiene ventajas convincentes para su uso particular. Puede ser que pueda hacer lo que quiera al iterar sobre los resultados de una sola línea de consulta, y el código equivalente de ActionScript sería más largo cuando intente sobre JSON analizado.

También consideraría si esta aplicación tiene que interactuar con el código JavaScript, como porque la aplicación Flash vive en un navegador y tiene que comunicarse con otras cosas en la página. Si es así, iría con JSON, porque tratar con XML en el navegador JS (en comparación con el moderno JS 1.8 con E4X) es mucho más difícil que tratar con JSON.

2

XML es un conjunto de datos. Es 90% de hipertexto y 10% de datos.

JSON tiene 2 grandes ventajas aquí:

  1. Es más pequeño. Eso significa que se usará menos ancho de banda (mejores tiempos de respuesta, excelente para AJAX)
  2. Es un subconjunto de JavaScript, lo que significa que para analizarlo todo lo que necesita es una llamada a la función eval(), como:

    result = eval(resultStr); var age = result.clients[2].age;

definitivamente que a recomendaría JSON.

+5

El análisis JSON con eval() es un riesgo de seguridad. Solo hazlo si estás absolutamente seguro de que puedes confiar en la fuente de datos. De lo contrario, proporciona una forma para que otra persona inserte código en su aplicación. ¿Puedes decir XSS, niños? Pensé que podrías. –

1

JSON significa JavaScript Object Notation ... la ventaja definitiva sobre JSON es, que captura objetos semántica de ECMAScript (incluyendo ActionScript) ... E4X ayuda mucho para que de alguna manera los objetos XML sentirse bien dentro de ActionScript pero todavía ..

si tengo <node attribute="value"><child/><node>, no puedo decir realmente, ¿qué es ... es child una propiedad? ¿es una entrada a una matriz de longitud uno? ¿cómo evaluaré el nombre node?

una cadena JSON representa un objeto de ActionScript en el anonimato ... un XML no lo hace ...

aparte de eso, existen las ventajas mencionadas allready: es más pequeño y más ligero ... y uno definitivo advantage sobre JSON es, él puede capturar los valores numéricos y booleanos ... este no es el caso para XML ... attrib="123" podría significar la cadena o el número entero 123123 ... lo mismo para true, false y null ...

2

Otra ventaja importante es la velocidad de análisis. El análisis de grandes cantidades de xml es muy lento, especialmente con el E4X, y más aún en los dispositivos móviles. He observado un aumento de velocidad de 10 veces usando json en lugar de xml para representar los mismos datos. En este caso, los datos tenían 1,5 MB comprimidos en zip.

Cuestiones relacionadas