2

我在使用 JavaScript 和 Ajax 解析“wunderground”API 时遇到问题。我可以得到一些值,而有些则不能。这是我使用的 API 的链接:

{
   "forecast":{
      "simpleforecast":{
         "forecastday":[
            {
               "date":{
                  "epoch":"1369429200",
                  "pretty":"11:00 PM CEST on May 24, 2013",
                  "day":24,
                  "month":5,
                  "year":2013,
                  "yday":143,
                  "hour":23,
                  "min":"00",
                  "sec":0,
                  "isdst":"1",
                  "monthname":"May",
                  "weekday_short":"Fri",
                  "weekday":"Friday",
                  "ampm":"PM",
                  "tz_short":"CEST",
                  "tz_long":"Europe/Ljubljana"
               },
               "period":1,
               "high":{
                  "fahrenheit":"63",
                  "celsius":"17"
               },
               "low":{
                  "fahrenheit":"45",
                  "celsius":"7"
               },
               "conditions":"Rain",
               "icon":"rain",
               "icon_url":"http://icons-ak.wxug.com/i/c/k/rain.gif",
               "skyicon":"cloudy",
               "pop":90,
               "qpf_allday":{
                  "in":0.47,
                  "mm":11.9
               },
               "qpf_day":{
                  "in":0.38,
                  "mm":9.7
               },
               "qpf_night":{
                  "in":0.05,
                  "mm":1.3
               },
               "snow_allday":{
                  "in":0,
                  "cm":0
               },
               "snow_day":{
                  "in":0,
                  "cm":0
               },
               "snow_night":{
                  "in":0,
                  "cm":0
               },
               "maxwind":{
                  "mph":4,
                  "kph":6,
                  "dir":"West",
                  "degrees":270
               },
               "avewind":{
                  "mph":2,
                  "kph":3,
                  "dir":"SSW",
                  "degrees":204
               },
               "avehumidity":62,
               "maxhumidity":72,
               "minhumidity":57
            }
         ]
      }
   }
}

我想为摄氏度解析值 17。到目前为止,我有这个:

jQuery(document).ready(function($) {
  $.ajax({
  url :     "http://api.wunderground.com/api/XXXXXXXXXX/geolookup/conditions/forecast/q/Slovenia/Maribor.json",
  dataType : "jsonp",
  success : function(parsed_json) {
  var forecast_1 = parsed_json['forecast']['simpleforecast']['forecastday']['celsius'];
  document.getElementById("forecast_1").innerHTML = forecast_1;
  }
  });
});
</script>

我得到了“未定义”的价值。请帮忙?谢谢

4

1 回答 1

1

该属性day是一个对象数组,因此您必须先选择数组索引。此外,它没有直接属性celsius。但是,在和celsius下有两个属性。因此,您必须决定要解决的问题。highlow

总而言之,结果可能如下所示:

var forecast_1 = parsed_json['forecast']['simpleforecast']['forecastday'][0]['high']['celsius'];

此外,正确的输出格式有助于理解它。使用例如http://jsonformatter.curiousconcept.com/

于 2013-05-24T14:47:52.047 回答