使用jquery循环访问JSON

时间:2013-10-04 20:11:01

标签: jquery json loops

我是第一次尝试遍历json对象,我想要做的就是列出temp变量的所有内容,但是我无法想出如何使循环工作。

$("button").click(function(){
var url = "http://api.openweathermap.org/data/2.5/forecast?lat=53.7&lon=0.3&callback=?" ; 
$.getJSON(url, function(res) {

    $('#result').html('<p>lon: ' + res.city.coord.lon + '</p>'); 
    $('#result').append('<p>lat: ' + res.city.coord.lat + '</p>');
    $('#result').append('<p>wind: ' + res.wind.speed + '</p>');

        $.each(res.list.main, function(i, temp) {
            $('#result').append('<p>temp: ' + temp[i] + '</p>');
        });
});  

});

1 个答案:

答案 0 :(得分:1)

你应该真的在console.log你的对象并找出结构。

在您认为的位置,该对象中没有res.wind.speed

以下是您对象的概述 - &gt;的 http://jsfiddle.net/t2KMk/1/

注意list是不同时间的对象数组等,包含风,云,雨,主等等。

这是一个如何迭代这些值,获得风的例子

$("button").click(function(){
    var url = "http://api.openweathermap.org/data/2.5/forecast?lat=53.7&lon=0.3&callback=?"; 

    $.getJSON(url, function(res) {
        $('#result').html('<p>lon: ' + res.city.coord.lon + '</p>'); 
        $('#result').append('<p>lat: ' + res.city.coord.lat + '</p>');

        $.each(res.list, function(i, temp) { // iterate the array

            $('#result').append('<p>wind: ' + temp.wind.speed + '</p>');
                                     //              ^^^ here you have wind
        });
    });  
});

FIDDLE