Как перебрать json-массив в jquery?

У меня есть php-страница, с которой я получаю ответ в json:

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

Я хочу закодировать его и добавить в div.

Это то, что я пробовал:

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

Это оповещение как undefined, а также ответ - это массив json.

Пожалуйста, помогите.

Ответы

Ответ 1

В вашем массиве есть ключи по умолчанию (0,1), которые хранят объект {'com':'some thing'}  Применение:

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

Ответ 2

Попробуйте следующее:

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);     
  });
});

Ответ 3

Вы выполняете итерацию через значение undefined, т.е. свойство com объекта Array, вы должны итерации через сам массив:

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

Также обратите внимание, что jQuery разумно пытается разобрать отправленный JSON, возможно, вам не нужно разбирать ответ. Если вы используете $.ajax(), вы можете установить dataType в json, который сообщает jQuery разбора JSON для вас.

Если он по-прежнему не работает, проверьте консоль браузера для устранения неполадок.

Ответ 4

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

  });
});

Ответ 5

вы можете получить пару значений ключа как

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

Ответ 6

Попробуйте следующее:

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

Ответ 7

попробуйте это

var events = [];

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

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

    alert(value.title);

});

Ответ 8

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
});