2015-09-05 312 views
-2

我想從wunderground獲取天氣預報和條件,但是當我運行代碼時,current_observation發生錯誤,api的邊數據json中的current_observation。未捕獲TypeError:無法讀取未定義的屬性'current_observation'

$(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?這使得它忽略'forecast'並使用'conditions',這在你的例子中沒有定義。 – 2015-09-05 16:43:37

+0

在json數據中我們有太多的對象,預測和條件 – aligassan

+0

@aligassan這不是JSON的工作方式。頂層包含'response','current_observation'和'forecast'鍵。你不能一次循環兩件事;這個不成立。 –

回答

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']將是未定義的,你要求在undefined之上的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" 
    }] 
    } 
} 
相關問題