I'm tratando de obtener datos del siguiente archivo JSON usando PHP. Quiero específicamente "temperatureMin" y "temperatureMax".
Es probablemente muy simple, pero no tengo idea de cómo hacer esto. I'm atascado en lo que debe hacer después de file_get_contents("file.json"). ¡Alguna ayuda sería muy apreciada!
{
"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,
}
]
}
}
Obtenga el contenido del archivo JSON utilizando file_get_contents()
:
$str = file_get_contents('http://example.com/example.json/');
Ahora decodifica el JSON usando json_decode()
:
$json = json_decode($str, true); // decode the JSON into an associative array
Tienes un array asociativo que contiene toda la información. Para saber cómo acceder a los valores que necesitas, puedes hacer lo siguiente:
echo '<pre>' . print_r($json, true) . '</pre>';
Esto imprimirá el contenido del array en un formato legible. Tenga en cuenta que el segundo parámetro se establece en true
para que print_r()
sepa que la salida debe ser retornada (en lugar de sólo imprimirse en la pantalla). Entonces, accedes a los elementos que quieres, así:
$temperatureMin = $json['daily']['data'][0]['temperatureMin'];
$temperatureMax = $json['daily']['data'][0]['temperatureMax'];
O bien, un bucle a través de la matriz de cualquier manera que usted desea:
foreach ($json['daily']['data'] as $field => $value) {
// Use $field and $value here
}
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/>';
}
}
}
Utilice json_decode para transformar su JSON en un array PHP. Ejemplo:
$json = '{"a":"b"}';
$array = json_decode($json, true);
echo $array['a']; // b