如何在JSON对象阵列jQuery上循环



我想在JSON数组对象的输出上循环并访问其元素如何做到这一点?多数民众赞成在执行查询

后的JSON数组对象的输出
Object {0: Object, 1: Object, 3: Object, 5: Object}
0:Object
certificate:""
country:"Egypt"
created_at:"2017-04-26 20:39:22"
description:"  "
end_date:"2017-04-22"
event_id:1
id:1
name:"Project Management"
pic:"4537c00b63a920f5d1a49bd37b01e789.jpg"
1:Object
3:Object
5:Object

我尝试编写这样的代码,但它没有起作用,我刚刚访问了第一个和第二个元素。看来我没有写正确的循环。它拒绝访问第三和第四元素。它必须做一些用数字写的事情。

var arr = JSON.parse(this.responseText);
console.log(arr);
var count = Object.keys(arr).length;
console.log(Object.keys(arr).length);
if (count != 0) {
  for (var i = 0; i < count; i++) {
    if (arr[i].type == "img")
      var image = document.createElement("img");
    var e = "/storage/" + arr[i].pic.replace("\", "");
    image.src = e;
  }
}

问题是对象中的属性名称不是顺序数字。您的对象中没有arr[2]。您的代码旨在循环到每个元素中都有对象的数组,而不是一个带有键的对象。

使用jQuery $.each()函数在对象上迭代。

var img;
$.each(arr, function(key, obj) {
    if (obj.type == 'img') {
        img = document.createElement("img");
        img.src = "/storage/" + obj.pic.replace('\', '');
    }
});

用于记录目的输出JSON对象的最简单方法:

JSON.stringify(your_json_object);

刚看到您的更新,我想您想这样做:如何迭代对象中的内在对象/属性

最新更新