Il metodo $.getJSON()
di jQuery serve a reperire un file JSON e ad effettuarne il parsing. Questo metodo è ampiamente usato nell'interazione con molte API presenti sul Web, a cominciare da quelle di Twitter. Vediamone insieme i dettagli.
La sintassi di questo metodo è la seguente:
$.getJSON(URL, function(oggettoJSON) {
// parsing
});
L'URL può essere sia assoluto che relativo. Nel caso di URL remoti, è di fondamentale importanza che il file JSON remoto sia servito come JSONP (JSON with Padding), poichè i browser per impostazione predefinita sono vincolati alla regola secondo cui una richiesta AJAX debba avere luogo sullo stesso dominio.
L'oggetto JSON passato come parametro dalla funzione di callback e restituito da quest'ultima deve essere un valido oggetto JSON. Ad esempio:
{
"a": 1,
"b": "Test"
}
Il parsing avviene in questo modo:
$.getJSON('test.json', function(json) {
var a = json.a;
var b = json.b;
console.log(a); // 1
console.log(b); // 'Test'
});
Come si può notare, abbiamo a che fare con un semplice oggetto JavaScript. Nel caso di JSONP la sintassi dell'URL è diversa:
var apiURL = 'https://api.twitter.com/1/users/show.json?screen_name=gabromanato&callback=?';
$.getJSON(apiURL, function(data) {
var followers = data.followers_count;
console.log(followers); // es. 584
});
In questo caso il parametro di callback (callback=?
) è fondamentale affinchè la richiesta abbia successo.