web-dev-qa-db-ja.com

jqueryでjson配列をループする方法は?

私はjsonで応答を受け取るphpページがあります:

[{'com':'something'},{'com':'some other thing'}]

ループして、それぞれをdivに追加します。

これは私が試したものです:

var obj = jQuery.parseJSON(response);
$.each(obj.com, function(key,value) {
  alert(key+':'+value);
}

これはundefinedとしてアラートし、応答はjson配列です。

助けてください。

24
Niket Malik

配列には、オブジェクト{'com':'some thing'}を格納するデフォルトのキー(0,1)があります。

var obj = jQuery.parseJSON(response);
$.each(obj, function(key,value) {
  alert(value.com);
}); 
50
Dell

これを試して:

var data = jQuery.parseJSON(response);
$.each(data, function(key, item) 
{
   console.log(item.com);
});

または

var data = $.parseJSON(response);

$(data).each(function(i,val)
 {
    $.each(val,function(key,val)
  {
          console.log(key + " : " + val);     
  });
});
9
Prateek

配列のオブジェクトのundefined値、つまりcomプロパティを反復処理している場合は、配列自体を反復処理する必要があります。

_$.each(obj, function(key,value) {
   // here `value` refers to the objects 
});
_

また、jQueryは送信されたJSONをインテリジェントに解析しようとすることに注意してください。おそらく応答を解析する必要はありません。 $.ajax()を使用している場合は、dataTypejsonに設定して、jQueryがJSONを解析するように指示できます。

それでも機能しない場合は、ブラウザのコンソールでトラブルシューティングを確認してください。

3
undefined
var data=[{'com':'something'},{'com':'some other thing'}];
$.each(data, function() {
  $.each(this, function(key, val){
    alert(val);//here data 
      alert (key); //here key

  });
});
3
user2667398
var data = [ 
 {"Id": 10004, "PageName": "club"}, 
 {"Id": 10040, "PageName": "qaz"}, 
 {"Id": 10059, "PageName": "jjjjjjj"}
];

$.each(data, function(i, item) {
   alert(data[i].PageName);
});​

$.each(data, function(i, item) {
  alert(item.PageName);
});​

または、この方法を試すことができます

var data = jQuery.parseJSON(response);
$.each(data, function(key,value) {
   alert(value.Id);    //It will shows the Id values
}); 
3

これを試して:

for(var i = 0; i < data.length; i++){
    console.log(data[i].com)
}
2
Vaibhav Jain

次のようにキーと値のペアを取得できます

<pre>
function test(){    
var data=[{'com':'something'},{'com':'some other thing'}];    
$.each(data, function(key,value) {    
alert(key);  
alert(value.com);    
});    
}
</pre>
2
user3762267

これを試して

var events = [];

alert(doc);
var obj = jQuery.parseJSON(doc);

     $.each(obj, function (key, value) {

    alert(value.title);

});

0
McNiel Viray