2017-04-26 9 views
0

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 

をクエリを実行した後、私はそのようなコードを書くことを試みたが、それは私ばかりアクセス第一及び第二の要素に働いdidntの厥。それは私が右ループを書いていないようだ。それは第3と第4の要素へのアクセスを拒否した。それはそれの横に書かれた数字で何かをしなければならない。

出力へ

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

問題は、オブジェクト内のプロパティ名が連続した番号ではないことです。あなたのオブジェクトには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

ありがとうございます –

0

最も簡単な方法は、ロギングの目的で、JSONオブジェクト:

JSON.stringify(your_json_object); 

はちょうどあなたの更新を見て、私はあなたがこれをしたいと思う: how to iterate over inner objects/property in an object

+0

問題は1つではなくすべてのプロパティにアクセスしたいのですが、 –

関連する問題