Page 1 sur 1

Récupérer une valeur au format Json

Posté : 06 juil. 2011, 20:00
par Castor Gaspard
Bonjour,

Vous allez peut-être pouvoir m'éclairer, car je sèche lamentablement, mais la réponse doit être relativement simple, ô désespoir.

J'ai la sortie suivante au format Json...

Code : Tout sélectionner

stdClass Object ( [code] => 0 [message] => ok [data] => Array ( [0] => stdClass Object ( [timeZone] => Europe/Paris [currentOffsetMs] => 7200000 [latitude] => 44.65 [longitude] => -1.18 ) ) )
Comment récupérer avec Php [timeZone] et [currentOffsetMs] ?

J'ai essayé toutes les combinaisons possibles, sans succès.

Merci pour votre aide. :D

Bien à vous,

Gaspard

Re: Récupérer une valeur au format Json

Posté : 06 juil. 2011, 20:03
par Ryle
Le format JSON est normalement destiné à être traité avec javascript plutôt que php, mais si tu en as besoin il existe la fonction json_decode() pour convertir ta chaine en un tableau associatif php :)

Re: Récupérer une valeur au format Json

Posté : 06 juil. 2011, 20:36
par Castor Gaspard
Bonjour Ryle,

Merci pour ta remarque.

Je récupère déjà les données avec Php...

Code : Tout sélectionner

$jsonurl = "http://www.askgeo.com/api/64005/t2m5qq0vuhdas6v6e9aqu1j6b4/timezone.json?points=44.65%2C-1.18"; $json = file_get_contents($jsonurl,0, null, null); $json_output = json_decode($json); print_r($json_output); var_dump($json_output)
Après, je ne sais pas récupérer les deux variables qui m'intéressent, et la documentation ne m'a guère aidé. :D

Encore merci.

Gaspard

Re: Récupérer une valeur au format Json

Posté : 07 juil. 2011, 00:44
par moogli
Salut,

Utilise le second parametre de json_decode pour avoir un tableau associatif, sinon s'il s'agit d'un objet Je dirais simplement json_output->timeZone et $json_output->currentOffsetMs ?

Pour le tableau $json_output = json_decode($json,true);

@+

Re: Récupérer une valeur au format Json

Posté : 07 juil. 2011, 09:41
par Castor Gaspard
Bonjour Moogli,

Merci de ton aide. :)

Encore une fois...

Oui, en passant, la valeur à TRUE, j'ai compris comment la tableau fonctionnait. Du coup, j'ai pu reprendre mon ancienne syntaxe...
$jsonurl = "http://www.askgeo.com/api/64005/t2m5qq0vuhdas6v6e9aqu1j6b4/timezone.json?points=44.65%2C-1.18";
$json = file_get_contents($jsonurl,0, null, null);
$json_output = json_decode($json);
$tz = $json_output->data[0]->timeZone;
echo $tz;
$lc = $json_output->data[0]->currentOffsetMs;
echo $lc;
Encore merci.

Cordialement,

Gaspard