2015-11-10 2 views
0

Я только немного узнал о JSON, и в настоящее время я пытаюсь показать температуру и погодные условия с использованием API подземных погодных условий и PHP, у меня есть температура, но не состояние погоды. Вот мой код:Wunderground PHP

<?php 
$json_string = file_get_contents("http://api.wunderground.com/api/9fca46f2c0517556/geolookup/conditions/q/UK/Leeds.json"); 
$parsed_json = json_decode($json_string); 
$location = $parsed_json->{'location'}->{'city'}; 
$weather =$parsed_json->{'weather'}; 
$temp_c = $parsed_json->{'current_observation'}->{'temp_c'}; 
echo "Current temperature in ${location} is: ${temp_c}\n degrees and it is currently ${weather}"; 
?> 
+0

'var_dump ($ parsed_json)' и посмотреть, что вы получили вед. да, вы можете запросить пользователя для любой информации, которую вы хотите, а затем можете использовать эту информацию, как хотите. –

+0

Все эти фигурные скобки не нужны, между прочим. Свойства объекта обычно ссылаются на '$ like-> this', а переменные могут быть включены' 'внутри строки с двойными кавычками' 'без каких-либо проблем. – miken32

ответ

2

Вы забыли узел вашего доступа $parsed_json объекта, замените:

$weather =$parsed_json->{'weather'}; 

С:

$weather = $parsed_json->current_observation->weather; 

И еще Generaly использования:

$json_string = file_get_contents("http://api.wunderground.com/api/9fca46f2c0517556/geolookup/conditions/q/UK/Leeds.json"); 
$parsed_json = json_decode($json_string); 
$location = $parsed_json->location->city; 
$weather =$parsed_json->current_observation->weather; 
$temp_c = $parsed_json->current_observation->temp_c; 
echo "Current temperature in ${location} is: ${temp_c}\n degrees and it is currently ${weather}"; 
+0

Спасибо, это сработало! – b1234

+0

Спасибо, приветствую! Не забывайте отмечать этот вопрос как решаемый :) –

+0

Зачем OP «попробуйте это»? Хороший ответ всегда будет объяснять, что было сделано, и почему это было сделано именно так, не только для OP, но и для будущих посетителей SO. –

Смежные вопросы