J'essaie d'obtenir des données du fichier JSON suivant en utilisant PHP. Je veux spécifiquement "temperatureMin" et "temperatureMax".
C'est probablement très simple, mais je ne sais pas comment faire cela. Je suis bloqué sur ce qu'il faut faire après file_get_contents ("file.json"). Une aide serait grandement appréciée!
{
"daily": {
"summary": "No precipitation for the week; temperatures rising to 6° on Tuesday.",
"icon": "clear-day",
"data": [
{
"time": 1383458400,
"summary": "Mostly cloudy throughout the day.",
"icon": "partly-cloudy-day",
"sunriseTime": 1383491266,
"sunsetTime": 1383523844,
"temperatureMin": -3.46,
"temperatureMinTime": 1383544800,
"temperatureMax": -1.12,
"temperatureMaxTime": 1383458400,
}
]
}
}
Obtenez le contenu du fichier JSON en utilisant file_get_contents()
:
$str = file_get_contents('http://example.com/example.json/');
Maintenant, décodez le JSON en utilisant json_decode()
:
$json = json_decode($str, true); // decode the JSON into an associative array
Vous avez un tableau associatif contenant toutes les informations. Pour savoir comment accéder aux valeurs dont vous avez besoin, vous pouvez procéder comme suit:
echo '<pre>' . print_r($json, true) . '</pre>';
Ceci imprimera le contenu du tableau dans un format lisible par Nice. Notez que le deuxième paramètre est défini sur true
afin de permettre à print_r()
de savoir que le résultat doit être return ed (plutôt que simplement imprimé à l'écran). Ensuite, vous accédez aux éléments de votre choix, comme suit:
$temperatureMin = $json['daily']['data'][0]['temperatureMin'];
$temperatureMax = $json['daily']['data'][0]['temperatureMax'];
Ou parcourez le tableau comme vous le souhaitez:
foreach ($json['daily']['data'] as $field => $value) {
// Use $field and $value here
}
Utilisez json_decode pour transformer votre JSON en un tableau PHP. Exemple:
$json = '{"a":"b"}';
$array = json_decode($json, true);
echo $array['a']; // b
Try:
$data = file_get_contents ("file.json");
$json = json_decode($data, true);
foreach ($json as $key => $value) {
if (!is_array($value)) {
echo $key . '=>' . $value . '<br/>';
} else {
foreach ($value as $key => $val) {
echo $key . '=>' . $val . '<br/>';
}
}
}