如何在javascript中迭代json数组

17 浏览
0 Comments

如何在javascript中迭代json数组

是的,关于这个问题有很多帖子。但是我的疑问有点不同。我有以下示例数组\n

var dictionary = {
    "12Jan2013": [{
        "id": "0",
        "name": "ABC"
    }, {
        "id": "1",
        "name": "DEF"
    }],
    "13Jan2013": [{
        "id": "0",
        "name": "PQR"
    }, {
        "id": "1",
        "name": "xyz"
    }]
};

\n在同一网站上有相同的帖子,但是在这个字典的json数组键是动态的。这里是日期,例如12Jan2013。它可以是任何日期。它不是静态的。我搜索了一下,但是没有找到解决方法。\n如何迭代这样一个json数组?\n以及如何按照上面显示的相同格式打印json数组?\n编辑\n这是我的真实代码。我在下面的代码中显示了一个注释,我希望在getWeatherDataForCities回调中迭代数据,即jsonData变量\n

var arrAllrecords = [];
var arrCityrecordForADay = [];
function getWeatherDataForCities(cityArray, callback){
var toDaysTimestamp = Math.round((new Date()).getTime() / 1000) - (24*60*60);
for(var i in cityArray){
    for(var j=1; j<=1; j++){
        var jsonurl = "http://api.openweathermap.org/data/2.5/history/city?q="+cityArray[i]+"&dt="+toDaysTimestamp;
        $.ajax({
            url: jsonurl,
            dataType: "jsonp",
            mimeType: "textPlain",
            crossDomain: true,
            contentType: "application/json; charset=utf-8",
            success: function(data){                    
                var arrCityRecordForDay = [];
                /*arrCityrecordForADay.push(data.list[0].city.name);
                arrCityrecordForADay.push(data.list[0].weather[0].description);
                arrCityrecordForADay.push(timeConverter(data.list[0].dt));
                arrCityrecordForADay.push(data.list[0].main.temp);
                arrCityrecordForADay.push(data.list[0].main.humidity);
                arrCityrecordForADay.push(data.list[0].main.pressure)
                arrCityrecordForADay.push(data.list[0].wind.speed);*/
                //'{"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}';
                arrCityRecordForDay.push(
                    {"cityName" : data.list[0].city.name},
                    {"weather" : data.list[0].weather[0].description}
                );
                var tempId = data.list[0].city.name+"-"+timeConverter(data.list[0].dt);
                arrCityrecordForADay.push(
                    {tempId : arrCityRecordForDay}
                );
                if(((arrCityrecordForADay.length)) === cityArray.length) {
                    callback(arrCityrecordForADay);
                }
        } });
        toDaysTimestamp = toDaysTimestamp - (24*60*60);
    }   
}       
}
$(document ).ready(function() {
 var cityArray = new Array();
  cityArray[0] = "pune";
  getWeatherDataForCities(cityArray, function(jsonData) {
        // 这里我想迭代jsonData
  });
});

0
0 Comments

如何在JavaScript中遍历JSON数组

在JavaScript中,当我们有一个JSON数组需要遍历时,可以使用for循环来实现。具体的方法如下所示:

for (var i in json) {
 ...
}

在上述代码中,变量i代表当前的键(key),因此,我们可以通过json[i]来访问相应索引处的数据。如果我们需要遍历内部元素,也可以使用相同的方法。

这种方法非常简单和直观,可以帮助我们遍历JSON数组中的每一个元素,并进行相应的操作。

0
0 Comments

问题的原因是用户想要了解如何在JavaScript中迭代JSON数组。解决方法是使用for循环来迭代数组中的每个元素,并在内部循环中访问对象的属性。

用户提供的代码示例中,使用for循环遍历dictionary数组对象。在外部循环中,变量i包含了数组的日期。在内部循环中,变量n遍历了字典数组对象中的内部数组对象。可以通过dictionary[i][n].id和dictionary[i][n].name访问每个对象的属性。

用户还提供了一个jsfiddle链接,以演示迭代的结果。迭代的结果显示了每个日期的id和name属性。

最后,用户询问了关于创建动态JSON数组的问题,并询问自己的方法是否正确。回答是,这取决于在ajax调用中的data对象的结构,但基本概念是相同的。

0
0 Comments

在这段代码中,问题的原因是需要遍历一个JSON数组,并对每个元素执行一些操作。代码中使用了for-in循环和forEach函数来实现这个目标。解决方法是使用for-in循环遍历字典对象,然后对字典中的每个JSON数组使用forEach函数进行操作。

代码中的for-in循环遍历字典对象,然后使用forEach函数遍历每个JSON数组并执行指定的操作。通过这个代码,可以得到每个JSON数组中的元素和索引。可以根据需要修改forEach函数的定义来执行其他操作。

另外,代码中还使用了Object.keys函数来实现相同的功能。使用Object.keys函数来遍历字典对象的键,并使用forEach函数遍历每个JSON数组执行操作。

代码中还给出了一个通用的函数strung,用于处理不同类型的组件。这个函数可以处理数组、对象和字符串或数字类型的数据。通过递归调用,可以处理复杂的JSON对象。

最后,代码中还提到了使用hasOwnProperty方法来过滤继承的属性。然而,在这种情况下,这个方法可能不是很相关。

总之,这段代码提供了几种遍历JSON数组的方法,以及处理不同类型组件的通用函数。通过使用这些方法,可以轻松地遍历和操作JSON数组中的元素。

0