2013-11-06 5 views
0

Я пытаюсь получить доступ к почасовой информации из API погоды. Проблема в том, что он не совсем работает для меня, и я не уверен на 100%, как получить доступ к информации.Получение почасовой информации от погоды API

Это сайт, с которым я работаю, и страницу на почасовой информации. http://www.wunderground.com/weather/api/d/docs?d=data/hourly&MR=1 У меня есть сильное чувство, что это должно сделать с тем, как доступ к переменным ...

Это мой код:

<script> 
      jQuery(document).ready(function($) { 
       $.ajax({ 

        url: "http://api.wunderground.com/api/6368023a57d122c7/geolookup/conditions/q/DominicanRepublic/Barahona.json", 
        dataType : "jsonp", 
        success : function(parsed_json) { 

         //get the hourly info -- cant get hourly to work... 
         var month = parsed_json['hourly_forecast']['FCTTIME']['mon_padded']; 
         var day = parsed_json['hourly_forecast']['FCTTIME']['mday_padded']; 
         var year = parsed_json['hourly_forecast']['FCTTIME']['year']; 
         var time = parsed_json['hourly_forecast']['FCTTIME']['civil']; 
         var updated = month + "/" + day + "/" + year + " " + time; 


         var weather = parsed_json['hourly_forecast']['condition']; 
         var temp = parsed_json['hourly_forecast']['temp']['metric']; 
         var humid = parsed_json['hourly_forecast']['humidity']; 

         var wind_direction = parsed_json['hourly_forecast']['wdir']['dir']; 
         var wind_speed = parsed_json['hourly_forecast']['wspd']['metric']; 

         var wind_string = wind_direction + " " + wind_speed + " Km/h"; 

         document.getElementById("weather").innerHTML = weather; 
         document.getElementById("temp").innerHTML = temp; 
         document.getElementById("hum").innerHTML = humid; 
         document.getElementById("wind").innerHTML = wind_string;   




        } 
       }); 
      }); 
     </script> 
+3

Что значит «не совсем работает для меня» означает? Какие ошибки вы получаете? Что происходит? – j08691

+0

@ j08691 никаких ошибок, и, к сожалению, абсолютно ничего не происходит. Как и в theres нет информации, появляющейся из API. Я попробовал другой подход, чтобы получить информацию, которая не обновляется ежечасно, и это сработало. Как-то это не так. – user2961971

+0

Вы пробовали использовать Fiddler, чтобы посмотреть, как идет запрос, и посмотреть, не возвращается ли его код? –

ответ

0

Если вы откроете файл JSON из этого URL вы увидите что он не содержит «hourly_forecast» или «FCTTIME».

EDIT:

Откройте файл в формате JSON, который вы скачиваете и посмотреть на то, что поля он посылает обратно к вам. JQuery уже делает сложную часть и анализирует ее в объектной модели. Кроме того, отладчики javascript в Chrome отлично показывают вам объектную модель JSON. Вы можете просто установить точку останова в начале функции «Успех» и использовать окно «Локальные переменные» для изучения объекта JSON.

Вот ваш код после того, как я обновил его использовать правильные имена полей из файла JSON ...

<script> 
jQuery(document).ready(function ($) { 
    $.ajax({ 
     url: "http://api.wunderground.com/api/6368023a57d122c7/geolookup/conditions/q/DominicanRepublic/Barahona.json", 
     dataType: "jsonp", 
     success: function (parsed_json) { 
      var current_observation = parsed_json.current_observation; 

      var lastUpdated = current_observation.observation_time; 

      var weather = current_observation.weather; 
      var temp = current_observation.temp_c; 
      var humid = current_observation.relative_humidity; 

      var wind_direction = current_observation.wind_dir; 
      var wind_speed = current_observation.wind_kph; 

      var wind_string = wind_direction + " " + wind_speed + " Km/h"; 

      alert("Weather: " + weather + "\n" 
       + "Temp: " + temp + "\n" 
       + "Humidity: " + humid + "\n" 
       + "Wind: " + wind_string + "\n" 
       + lastUpdated 
       ); 
     } 
    }); 
}); 
</script> 
+0

любые предложения о доступе к hourly_forcast? Я действительно не знаком с работой с этими типами API – user2961971

+0

См. Обновление для примера ... – David

+0

Возможно, вы можете мне помочь. Вместо этого используйте этот URL-адрес «http://api.wunderground.com/api/6368023a57d122c7/hourly/q/DominicanRepublic/Barahona.json« Как бы вы получили информацию от этого? – user2961971

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