JSON decode

Fermé
jean chevrier - Modifié par jean chevrier le 13/02/2017 à 20:55
 jean chevrier - 13 févr. 2017 à 23:23
Bonjour,

je cherche à decoder le retour d'une API météo en json

json retourné par l'api :
{"city":{"id":2990969,"name":"Nantes","coord":{"lon":-1.55336,"lat":47.217251},"country":"FR","population":0},"cod":"200","message":0.0078,"cnt":1,"list":[{"dt":1486987200,"temp":{"day":11.67,"min":9.28,"max":11.67,"night":9.28,"eve":11.67,"morn":11.67},"pressure":1021.52,"humidity":73,"weather":[{"id":501,"main":"Rain","description":"moderate rain","icon":"10d"}],"speed":6.91,"deg":145,"clouds":92,"rain":5.87}]}


code utilisé pour decoder :

$json = file_get_contents('url api');
$jsonData =json_decode($json, true);



a partir de ce code je peux récupérer les valeur des premiers array comme cnt, cod
avec

echo $jsonData['cnt'];


mais je n'arrive pas à accéder aux "sous array"

les données dans "list" par exemple

2 réponses

yg_be Messages postés 22805 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 mai 2024 1 469
Modifié par yg_be le 13/02/2017 à 21:06
je suggère de faire
var_dump($jsonData);
var_dump($jsonData['list']);
, je pense que cela sera très éclairant.
1
yg_be Messages postés 22805 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 mai 2024 1 469
13 févr. 2017 à 21:12
et ainsi?
echo $jsonData['list'][0]['temp']['day];
0
jean chevrier
13 févr. 2017 à 21:00
voici un var_dump :


array(5) { ["city"]=> array(5) { ["id"]=> int(2990969) ["name"]=> string(6) "Nantes" ["coord"]=> array(2) { ["lon"]=> float(-1.55336) ["lat"]=> float(47.217251) } ["country"]=> string(2) "FR" ["population"]=> int(0) } ["cod"]=> string(3) "200" ["message"]=> float(0.0086) ["cnt"]=> int(1) ["list"]=> array(1) { [0]=> array(9) { ["dt"]=> int(1486987200) ["temp"]=> array(6) { ["day"]=> int(11) ["min"]=> float(8.87) ["max"]=> int(11) ["night"]=> float(8.87) ["eve"]=> int(11) ["morn"]=> int(11) } ["pressure"]=> float(1021.52) ["humidity"]=> int(73) ["weather"]=> array(1) { [0]=> array(4) { ["id"]=> int(501) ["main"]=> string(4) "Rain" ["description"]=> string(13) "moderate rain" ["icon"]=> string(3) "10d" } } ["speed"]=> float(6.91) ["deg"]=> int(145) ["clouds"]=> int(92) ["rain"]=> float(5.87) } } }
0
jean chevrier
13 févr. 2017 à 23:23
pour var_dump($jsonData['list']);

voici le resultat :

array(1) { [0]=> array(9) { ["dt"]=> int(1486987200) ["temp"]=> array(6) { ["day"]=> int(11) ["min"]=> float(8.87) ["max"]=> int(11) ["night"]=> float(8.87) ["eve"]=> int(11) ["morn"]=> int(11) } ["pressure"]=> float(1021.52) ["humidity"]=> int(73) ["weather"]=> array(1) { [0]=> array(4) { ["id"]=> int(501) ["main"]=> string(4) "Rain" ["description"]=> string(13) "moderate rain" ["icon"]=> string(3) "10d" } } ["speed"]=> float(6.91) ["deg"]=> int(145) ["clouds"]=> int(92) ["rain"]=> float(5.87) } }


et pour

echo $jsonData['list'][0]['temp']['day'];


11

je pense avoir compris le principe, je vais tester un peu toute les possibilités, je reviens vers vous en cas de problème, en attendant merci beaucoup !
0