XML, es un lenguaje de intercambio de información estructurada desarrollado por la W3C, con la poposición de ser un estandard entre diferentes plataformas, desde bases de datos, editores de texto,…
Es una tecnología sencilla y fácil de entender, además se aplica un razonamiento lógico a su estructura.
<menu id="file" value="File">
<popup>
<menuitem value="New" onclick="CreateNewDoc()" />
<menuitem value="Open" onclick="OpenDoc()" />
<menuitem value="Close" onclick="CloseDoc()" />
</popup>
</menu>
Por otro lado JSON está pegando fuerte en la programación web debido a las ventajas que ofrece sobre el XML.
JSON es un subconjunto de la notación literal de objetos de Javascript pero no requiere el uso de Javascript.
A simple vista, la facilidad que conlleva el uso de JSON en comparación con la laboriosa tarea de recorrer un XML, por ejemplo para trabajar con Ajax, es uno de los motivos por los cuales los desarrolladores están volcando sus esfuerzos en esta herramienta de intercambio de datos.
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Como problemas, los desarrolladores experimentados encuentran que la utilización de eval()
para para analizar JSON es algo delicado y puede atentar la seguridad del sitio.
var http_request = new XMLHttpRequest();
var url = "http://example.net/jsondata.php";
// Esta URL debería devolver datos JSON
// Descarga los datos JSON del servidor.
http_request.onreadystatechange = handle_json;
http_request.open("GET", url, true);
http_request.send(null);
function handle_json() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var json_data = http_request.responseText;
var the_object = eval("(" + json_data + ")");
} else {
alert("Ha habido un problema con la URL.");
}
http_request = null;
}
}
Por estos motivos y algunos más, se plantean debates y se intenta decidir cual es la forma correcta de intercambiar información.
10 comentarios, 0 referencias
+
#