Lo primero, no pienso entrar en una de las largas discusiones que hay entre JSON y XML; solo hablaré de la solución más adecuada para el problema expuesto.
La ventaja de este problema, es que el servicio que devolvía el XML(Servicio Web) esta dentro de la aplicación que se esta desarrollando; asi que ¿Por que no cambiar y utilizar JSON basandonos en los principios de REST?
La solución más adecuada ("hacerlo correcto") pasó por crear un recurso que devolviera los datos en formato JSON, así no dependemos de los soportes propios que cada navegador da a XML, ya que JSON es soportado directamente por todos ellos (al menos los principales).
Las modificaciones realizadas fueron:
- Crear un recurso(uri) en lugar de ws que devolviera los datos en formato JSON
- Recoger la respuesta de la petición AJAX como texto
- Utilizar el parser de JSON de javascript(json.js)
- Utilizar directamente las propiedades del objeto JSON
Finalmente :
La respuesta final del servicio quedo así (mucho más compacta):
{"x":"12.3456","y":"-4.789"}
El codigo javascript final quedo así (mucho más legíble):
var objJSON = txtJSON.parseJSON();
parent.setUtmX(objJSON.x);
parent.setUtmY(objJSON.y);
A continuación pongo un enlace a un visor de objetos JSON, el cual recibe un texto en este formato, lo convierte, y luego muestra sus propiedades y métodos en tablas.
Visor de objetos JSON
- FIN -
No comments:
Post a Comment