Todo sobre JSONP: Parte II

Cómo se procesa un JSONP para extraer el dato

Favorablemente vuestra librería Javascript predilecta tiene que ser capaz de extraer ese dato por vosotros, de una forma semi-transparente. Ordinariamente solo le tendrán que indicar que van a recoger el dato en JSONP en vez del JSON convencional.

Evidentemente la manera que se hará esto pende de la elaboración de vuestra librería. Ahora se verán distintos ejemplos de código. Podrán apreciar que es bastante fácil.

JSONP en jQuery

Para demostrar a jQuery que el dato de respuesta llega en JSONP se utiliza la variable de configuración “dataType“, fijando el valor “jsonp“.

Este código no os pedirá de muchas definiciones si se conoce el trabajo con Ajax en jQuery. Revisas el Manual de jQuery para que puedan consultar la información sobre Ajax.

$.ajax({

url: “http://api.openbeerdatabase.com/v1/beers.json”,

         data: {

                 query: “beer”

         },

         type: “GET”,

         dataType: “jsonp”,

         success: function(respuesta){

console.log(“Recibes: “, respuesta);

$(“<pre>”).text(JSON.stringify(respuesta)).appendTo(“body”);

         }

});

Lo que deben apreciar es que en la función success() el parámetro “respuesta” posee un objeto Javascript oriundo, que es el consecuencia de la cadena JSONP admitida y transformada en su correspondiente objeto.

Y con el console.log() vuelcan ese dato en la consola de Javascript. Con la etiqueta PRE hecha al revoloteo y el procedimiento JSON.stringify() Se obtiene el que se convierta ese objeto a un literal de cadena, con lo que se logra volcarlo como texto en la página y presenciarlo sin requerimiento de la consola. Usualmente vosotros en vuestro programa harán con ese objeto otra cosa diferente, eso depende de vuestra aplicación y el objetivo de los datos que acaban de recoger. Lo atrayente aquí es que jQuery se encomienda él solito de transformar el JSONP en un objeto manejable por código Javascript.

Y por ahora esto es todo. Ojala que hayan resuelto vuestras dudas y no sea para vosotros un inconveniente alguno el poder entrar a cualquier API que os devuelva datos con JSONP.