我想循环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;
}
}
答案 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('\\', '');
}
});