2015-09-05 6 views
-2

Я хочу получить прогноз погоды и условия от wunderground, но когда я запустил код с ошибкой current_observation, current_observation в боковых данных json из api.Uncaught TypeError: Не удается прочитать свойство 'current_observation' of undefined

$(document).ready(function($){ 
$.ajax({ 
    url: "http://api.wunderground.com/api/72df18b7f213607b/conditions/forecast/lang:AR/q/CO/zmw:00000.1.WKQTZ.json", 
    dataType : "jsonp", 
    success : function(parsed_json) { 
     var forecast = parsed_json['forecast']['txt_forecast']['forecastday']['conditions']['current_observation']; 

     for (index in forecast,conditions) { 
      var newForecastString = 'Weather forecast for ' + forecast[index]['title'] + ' is ' + forecast[index]['fcttext_metric']; 
     var newconditionsString = 'Weather forecast for ' + forecast[index]['title'] + ' is ' + forecast[index]['station_id']; 
      var newForecastParagraph = $('<p/>').text(newForecastString); 
      $("body").append(newForecastParagraph); 
     } 
    } 
}); }); 
+0

'for (index in forecast, conditions) {' Whyt is ', conditions' there? Это заставляет игнорировать «прогноз» и использовать «условия», которые не определены в вашем примере. –

+0

in json data у нас тоже объект, прогноз и условия – aligassan

+0

@aligassan Это не то, как работает JSON. Верхний уровень содержит ключи 'response',' current_observation' и 'прогноз'. И вы не можете сразу перебирать две вещи; это не имеет никакого смысла. –

ответ

0

current_observation находится на верхнем уровне, например, parsed_json['current_observation].

Несвязанный, но лучше разместить JSON, чем открыть ваш ключ API.

Если вы ищете условия, они не являются массивом нигде, они представляют собой однострочное значение, которое можно найти в разных местах.

+0

Вы можете мне дать полный ответ – aligassan

+2

@aligassan Я сделал; Я рассказал вам, как добраться до текущего наблюдения. Так что на самом деле это не «вся моя работа для меня», это скорее «научить человека ловить рыбу», по крайней мере для меня. Просто взгляните на JSON - вот что я сделал. –

0

его поскольку parsed_json['forecast']['txt_forecast']['forecastday'] не имеет conditions в нем. Таким образом, parsed_json['forecast']['txt_forecast']['forecastday']['conditions'] будет неопределенным, и вы просите current_observation поверх неопределенного.

"forecast":{ 
    "txt_forecast": { 
    "date":"6:28 PM AST", 
    "forecastday": [{ 
    "period":0, 
    "icon":"clear", 
    "icon_url":"http://icons.wxug.com/i/c/k/clear.gif", 
    "title":"السبت", 
    "fcttext":"صافٍ غالبًا. درجة الحرارة الصغرى 81 درجة فهرنهيت.", 
    "fcttext_metric":"صافٍ غالبًا. درجة الحرارة الصغرى 27 درجة مئوية.", 
    "pop":"0" 
    }] 
    } 
} 
Смежные вопросы