Una de las grandes carencias de Velneo es la falta de un conjunto de funcionalidad integrada que facilite el tratamiento de datos XML, bueno esto puede parecer un problema grave, pero no lo es.

Como muchos sabéis XML adolece de algunos problemas que hacen su uso desaconsejable para cierto tipo de tareas. El caso evidente es cuando deseamos parsear desde javascript un fichero xml (es tedioso y poco óptimo). Una solución es utilizar un formato de fichero más adecuado, este formato es JSON:

http://es.wikipedia.org/wiki/JSON: … La simplicidad de JSON ha dado lugar a la generalización de su uso, especialmente como alternativa a XML en AJAX. Una de las supuestas ventajas de JSON sobre XML como formato de intercambio de datos en este contexto es que es mucho más sencillo escribir un analizador semántico de JSON. …

Aceptemos que JSON es mejor formato para ciertos casos, y veamos como nos podemos aprovechar de esta ventaja en Velneo v7.

Antes de continuar recomendamos encarecidamente leer con detenimiento: http://es.wikipedia.org/wiki/JSON

Veamos un ejemplo de como consumir servicios JSON en Velneo v7.

Hemos desplegado un servicio web en PHP que nos muestra el tiempo en un lugar del mundo basado en la api de Google. http://www.freecomputeradvice.net/2009/08/google-weather-api.html. Este servicio queda en la dirección: http://reader.tipesoft.com/weather/weather.php?city=Madrid

El resultado de este servicio es un fichero JSON que contiene la información del tiempo con el siguiente formato:

{«current» : { «condition»:»Partly Cloudy», «temp»:»68″, «humidity»:»Humidity: 73%», «wind_condition»:»Wind: S at 5 mph», «icon»:»partly_cloudy.gif» },
«0» : { «day»:»Fri», «condition»:»Chance of Rain», «low»:»62″, «high»:»82″, «icon»:»chance_of_rain.gif» },
«1» : { «day»:»Sat», «condition»:»Chance of Rain», «low»:»66″, «high»:»87″, «icon»:»chance_of_rain.gif» },
«2» : { «day»:»Sun», «condition»:»Chance of Rain», «low»:»64″, «high»:»86″, «icon»:»chance_of_rain.gif» },
«3» : { «day»:»Mon», «condition»:»Partly Sunny», «low»:»64″, «high»:»87″, «icon»:»mostly_sunny.gif» }}

¿y como desde Velneo podemos leer esta información?

Sencillo, mediante ECMAScript, el interprete de Velneo y muy poco trabajo:

image

Pero no todos los servicios web están en formato JSON y por lo tanto tendremos que buscar soluciones para otro tipo de formatos. En nuestro caso teníamos este problema ya que el servicio del tiempo de Google solo dispone de formato XML. La solución es sencilla, en PHP hemos utilizado un intermediario (http://code.google.com/p/json-google-weather/) que realiza la transformación de formato.

image

Bueno, esperamos que os resulte sencillo. Si XML o JSON no os gustan podéis utilizar vuestro propio formato de serialización (LML es una muy buena solución para la misma problemática ideada por José Luis Pepeto y utilizada en sus propios desarrollos), aunque sinceramente nosotros nos quedamos con XML y JSON según el caso.

5 Comments

  1. Velneo + json + jasperreports = Informes pdf, rtf, ooffice … 🙂
    Ya hace tiempo que utilizo esta técnica con Velneo y funciona de vicio.
     
    Un saludo. Roberto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *