Ajax数据对象意外行为

时间:2016-03-05 12:26:58

标签: javascript arrays object

我很难遍历从ajax调用到天气api的数据集。我想获取诸如temp或id之类的值的值,但不断出错。我试过这个天气。天气[' id'],weather.weather.id,weather.weather [0]。我知道顶级天气层是一个物体。但是第二个天气正在通过一个阵列?那有一个对象吗?我如何从中提取信息?我有一些想法为正常的数据集做这个,但这对我来说很奇怪。注意这是VUEJS

AJAX CALL:

$.getJSON('http://api.openweathermap.org/data/2.5/weather?id=6356055&appid=44db6a862fba0b067b1930da0d769e98', function(weather) {
                this.weather_data = weather;
            }.bind(this));

这就是我将数据推送到空数组

weather_data: [],

然后现在我只是想确保它在这样的一些前标签中工作:

{{  weather_data.weather[0].id | json}}

这是从getjson调用中撤回的内容。

       "weather": {
        "coord": {
            "lon": 2.13,
            "lat": 41.4
        },
        "weather": [
            {
                "id": 800,
                "main": "Clear",
                "description": "clear sky",
                "icon": "01d"
            }
        ],
        "base": "cmc stations",
        "main": {
            "temp": 285.622,
            "pressure": 1006.71,
            "humidity": 98,
            "temp_min": 285.622,
            "temp_max": 285.622,
            "sea_level": 1015.25,
            "grnd_level": 1006.71
        },
        "wind": {
            "speed": 2.61,
            "deg": 267.501
        },
        "clouds": {
            "all": 0
        },
        "dt": 1457178093,
        "sys": {
            "message": 0.0042,
            "country": "ES",
            "sunrise": 1457158704,
            "sunset": 1457200063
        },
        "id": 6356055,
        "name": "Barcelona",
        "cod": 200
    },

尝试这个weather_data.weather这个

           [
  {
    "id": 801,
    "main": "Clouds",
    "description": "few clouds",
    "icon": "02d"
  }
]

1 个答案:

答案 0 :(得分:0)

首先,对于这类问题,我建议使用console.log(your_variable)并查看浏览器控制台(Chrome中的F12)你真正拥有的内容。否则,如果您的原始api响应存储在名为“data”的变量中,data.weather.weather [0] .id应该可以工作。