2011-10-14 21 views
39

içinden döngü 'Değer' değerlerini elde etmek için bunu aşmaya çalışıyorum. Şu anda sahip olduğum şey bu, ama çalışmadığı görülüyor, burada yayınlananlardan birkaçını denedim ama hiçbir şey işe yaramadı.json array jquery

$.get("/get_names", {campaign_id: $('select[name="id"]').val()}, 
       function(data){ 
        $.each(data, function(i, item) { 
         alert(item); 
        }); 
       } 
    ); 

Json iade edilen:

item.name 
item[i].name 

Herhangi öneri:

[ 
      { 
       "name":"age" 
      }, 
      { 
       "name":"asdf" 
      }, 
      { 
       "name":"drivername" 
      }, 
      { 
       "name":"drivers" 
      }, 
      { 
       "name":"firstname" 
      }, 
      { 
       "name":"gender" 
      }, 
      { 
       "name":"lastname" 
      }, 
      { 
       "name":"make" 
      }, 
      { 
       "name":"model" 
      }, 
      { 
       "name":"vehicles" 
      }, 
      { 
       "name":"year" 
      } 
     ] 

kullanıyorum denedim?

Teşekkür ederiz!

data = $.parseJSON(data); 
$.each(data, function(i, item) { 
    alert(item); 
}); 
+0

deneyin 'öğeyi [i] [0]' tek ayraç döndürür – jackJoe

+0

, '[' bir dizide ... ben :) – dzm

+0

komut dosyasını uyumsuz hale getirme ?? – jackJoe

cevap

111

Sen (data[0] == "["data aslında bir dize değil, bir nesne olduğunun göstergesidir) JSON olarak dizeyi ayrıştırmak gerekiyor. sadece bir dize.

Eğer

+2

olarak ele değil demektir –

+0

altında yazdığı olmasıdır Ama bunu yapar – ruveena

1

ben sen sunucudan json nesnesi dönen sanmıyorum:

9
ayrıca .getJSON() yönteme .get() yönteminden değişebilir

, jQuery sonra dize bir javascript nesne ve/veya diziye data olarak döndürülür ayrıştırmak olacak json olmak dönüş nesnenin dataType gerektiğini Diğer javascript nesnesi/dizileri gibi referans alabilirsiniz. Yukarıdaki kodunuzu kullanarak, .get değerini .getJSON olarak değiştirdiyseniz, dizideki her öğe için bir [object Object] uyarısı almalısınız. Eğer uyarıyı alert(item.name) olarak değiştirdiyseniz, isimleri alacaksınız.