如何循环json对象数组jquery?

时间:2017-04-26 22:11:47

标签: javascript php jquery html json

我想循环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;
  }
}

2 个答案:

答案 0 :(得分:0)

输出Json对象以进行日志记录的最简单方法:

JSON.stringify(your_json_object);

刚看到你的更新,我想你想这样做: how to iterate over inner objects / property in an object

答案 1 :(得分:0)

问题是对象中的属性名称不是序列号。您的对象中没有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('\\', '');
    }
});