linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] [OT] JSON + Javascript

Michele Bonera michele a bonera.biz
Mer 2 Mar 2011 12:31:41 UTC
Il giorno mer, 02/03/2011 alle 12.13 +0100, Diego Monselice ha scritto:

> Il giorno mer, 02/03/2011 alle 11.59 +0100, Andrea Occhi ha scritto:
> > quando usavo Json con Javascript (ma anche con altri linguaggi) la mia
> > bibbia era http://www.json.org/.
> > Per Javascript in particolare http://www.json.org/js.html
> > A mio parere non ti conviene usare Jquery (a meno che  lo usi poi per altro).
> be'... e le alternative? Io non sono riuscito a fare ciò che voglio in
> nessun modo...

Attenzione che i browser non ti permettono (o almeno così si comporta
firefox della 10.04) di accedere con ajax fuori dal dominio, quindi ti
devi scrivere un "proxy" in php che faccia la get a Google:

--------------------- fetch_json.php --------------------------
<?php

$latlng = $_REQUEST['latlng'];
$sensor = $_REQUEST['sensor'];
$region = $_REQUEST['region'];

$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=
$latlng&sensor=$sensor&region=$region";
$handle = fopen($url, "r");

if ($handle) {
	while (!feof($handle)) {
		$buffer = fgets($handle,4096);
		echo $buffer;
	}
	fclose($handle);
}

?>
----------------------- fine fetch_json.php -------------------


Quindi fai una richiesta così (usa Jquery che ti semplifica la vita):

params = {
  latlng : '45.539829,10.222957',
  sensor : 'true',
  region : 'it'
}

$.ajax({
  url: 'fetch_json.php',
  type: 'get',
  data: params,
  dataType: 'json',
  success: function(jsonobj) {
    longName=jsonobj.results[0].address_components[0].long_name
    $('#result').html("LongName="+longName)
  }
});

Il risultato lo trovi dentro jsonobj che è un oggetto javascript al
quale accedi usando la dot notation unitamente alle parentesi quadre che
ti permettono di accedere agli elementi. 

Ovviamente ha molto più senso ciclare fra gli elementi, ma volevo farti
capire com'è strutturato l'oggetto.

Usando firebug, puoi vedere com'è strutturato l'oggetto json che ti
viene restituito. Dio benedica firebug e jquery! ;)

Bye
-- 
Michele Bonera
www.morrisoft.eu




Maggiori informazioni sulla lista Lug