Récupérer une valeur au format Json

Eléphant du PHP | 256 Messages

06 juil. 2011, 20:00

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 juil. 2011, 20:03

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 256 Messages

06 juil. 2011, 20:36

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
Modifié en dernier par Castor Gaspard le 07 juil. 2011, 09:42, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 juil. 2011, 00:44

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);

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 256 Messages

07 juil. 2011, 09:41

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