如何循环json对象数组jquery?

问题描述:

我想循环json数组对象的输出并访问其元素如何做到这一点? 那JSON阵列对象的输出在其上进行查询如何循环json对象数组jquery?

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('\\', ''); 
    } 
}); 
+0

谢谢,它的工作 –

输出

最简单的方式JSON对象进行日志记录:

JSON.stringify(your_json_object); 

刚刚看到您的更新,我认为要做到这一点: how to iterate over inner objects/property in an object

+0

问题是我想访问所有属性不只是一个 –