Я пытаюсь получить данные из следующего файла JSON с помощью PHP. Я специально хочу «temperatureMin» и «temperatureMax».
Это, наверное, очень просто, но я понятия не имею, как это сделать. Я застрял в том, что делать после file_get_contents ("file.json"). Некоторая помощь будет принята с благодарностью!
{ "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, } ] } }
Получите содержимое файла JSON с помощью file_get_contents()
:
$str = file_get_contents('http://example.com/example.json/');
Теперь декодируем JSON с помощью json_decode()
:
$json = json_decode($str, true); // decode the JSON into an associative array
У вас есть ассоциативный массив, содержащий всю информацию. Чтобы выяснить, как получить доступ к необходимым вам значениям, вы можете сделать следующее:
echo '<pre>' . print_r($json, true) . '</pre>';
Это позволит распечатать содержимое массива в удобном для чтения формате. Затем вы получаете доступ к элементам, которые вы хотите, например:
$temperatureMin = $json['daily']['data'][0]['temperatureMin']; $temperatureMax = $json['daily']['data'][0]['temperatureMax'];
Или прокрутите массив, как вы хотите:
foreach ($json['daily']['data'] as $field => $value) { // Use $field and $value here }
Демо!
Используйте json_decode, чтобы преобразовать JSON в массив PHP. Пример:
$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/>'; } } }