Değer json için $ .each, nasıl?

Json kodunu aşağıdaki gibi ( için $. Each ) yapabilirsiniz (isim için):

1: 11 11
2: 666666666 99999 777777 1221
3: 55555 00000000 222222222 333333333

{
    "reunits": [
        {
            "reun": [
                {
                    "name": "11",
                    "price": "77192276",
                    "extra": "11",
                    "hotel_id": "77192276"
                },
                {
                    "name": "11",
                    "price": "77192276",
                    "extra": "11",
                    "hotel_id": "77192276"
                }
            ]
        },
        {
            "reun": [
                {
                    "name": "666666666",
                    "price": "15190364",
                    "extra": "11",
                    "hotel_id": "15190364"
                },
                {
                    "name": "99999",
                    "price": "15190364",
                    "extra": "11",
                    "hotel_id": "15190364"
                },
                {
                    "name": "777777",
                    "price": "15190364",
                    "extra": "11",
                    "hotel_id": "15190364"
                },
                {
                    "name": "1221",
                    "price": "15190364",
                    "extra": "11",
                    "hotel_id": "15190364"
                }
            ]
        },
        {
            "reun": [
                {
                    "name": "55555",
                    "price": "11",
                    "extra": "33",
                    "hotel_id": "15183965"
                },
                {
                    "name": "00000000",
                    "price": "11",
                    "extra": "33",
                    "hotel_id": "15183965"
                },
                {
                    "name": "222222222",
                    "price": "11",
                    "extra": "33",
                    "hotel_id": "15183965"
                },
                {
                    "name": "333333333",
                    "price": "11",
                    "extra": "33",
                    "hotel_id": "15183965"
                }
            ]
        }
    ]
}

Benim denemem bu (iş değil):

$.ajax({
...
success: function (data) {
    $.each(data.reunits['reun'], function (index, value) {
                    $('.li_show').append('
  • '+value.name+'
  • ');
                    });
                }
    )}
    
    0

    4 cevap

    $.each(data.reunits, function (index, value) {
        var parts = [];
        $.each(value.reun, function(k,v){
            parts.push(v.name);
        });              
        $('.li_show').append('
  • ' + (index + 1) + ': ' +parts.join(" ")+'
  • ');   
    });
    
    2
    katma
    @JimBo: Nasıl basılmasını istediğini gerçekten belirmedin.
    katma yazar Rocket Hazmat, kaynak
    Evet, üzgünüm, bir seviye kaçırdı. Yorumu güncelledim
    katma yazar FreeCandies, kaynak
    etiketi hariç en son kod çıktıları budur. etiketini kaldırırsanız, yazdığınız gibi doğru olur. $ ('. li_show'). Ekle ('
  • ' + parts.join ("") + '
  • ');
    katma yazar FreeCandies, kaynak
    şimdi deneyin plz. üzgünüm, biraz uykum var :)
    katma yazar FreeCandies, kaynak
    Lütfen buraya bakın: tam json'um ve ne istediğimi jsfiddle.net/M4WQs/3 . Bu json kodu her ad_reip her bir reunits.reun koymak nasıl?
    katma yazar JimBo, kaynak
    Hayır, üç kere etiket li yapmak istiyorum çünkü üç tane reunits.reun var:
  • 11 11
  • 666666666 99999 777777 1221
  • 55555 00000000 222222222 333333333
  • tamam mı?
    katma yazar JimBo, kaynak
    @Rocket - bunu üç kez döngü halinde istiyorum: 1 = 11 11 2 = 666666666 99999 777777 1221 3 = 55555 00000000 222222222 333333333.
    katma yazar JimBo, kaynak
    Bu yeni kod, tüm isimleri üç kere olarak koydu, ilk gönderide (1 2 3) örnek olarak üç li koymak istiyorum.
    katma yazar JimBo, kaynak
    Kod çıktınız: undefined
    katma yazar JimBo, kaynak
    $(data.reunits).each(function(i,j){
    $.each(j,function(x,y){
    $.each(y,function(f,g){
    console.log(g.name);
     $('.li_show').append('
  • '+g.name+'
  • ');
    
      });
     });
    });
    

    düzenle

    $(data.reunits).each(function(i,j){
    $.each(j,function(x,y){
    $var=" ";
    $.each(y,function(f,g){
    $var+=" "+g.name;
    //console.log(g.name);
      });
       $('.li_show').append('
  • '+$var+'
  • ');
     });
    });
    

    DEMO

    0
    katma
    @JimBo düzenlemeler plz bakın
    katma yazar Rafay, kaynak
    Hayır, her üç kez etiket li yapmak istiyorum çünkü üç tane reunits.reun, şu şekilde:
  • 11 11
  • 666666666 99999 777777 1221
  • 55555 00000000 222222222 333333333
  • katma yazar JimBo, kaynak
    jsfiddle için teşekkürler. lütfen buraya bakın: tam htm ve jsfiddle.net/M4WQs/3 . Bu json kodu her ad_reip her bir reunits.reun koymak nasıl?
    katma yazar JimBo, kaynak

    Aşağıdakileri yapabilirsiniz:

    $.ajax({
    ...
    success: function (data) {
        $.each(data.reunits, function (index, value) {
           for(key in value){
              $.each(value[key], function(i, v){
                 $('.li_show').append('
  • '+v.name+'
  • ');
              });
           }             
        });
    )}
    

    for deyimini kullanarak dizi nesnesindeki iç nesneleri yineleyebilirsiniz.

    0
    katma
    @Rocket yazım hatası düzeltmek için teşekkürler, evet demek istedim, ama foreach değil. Value.reun hakkında emin değilim, sadece bu özelliği veya başkalarını da işlemek için gerekip gerekmediği net değil.
    katma yazar Pavel Podlipensky, kaynak
    value [key] yerine value.reun yapılması daha iyi olur. Değerlerinde name özelliklerine sahip olmayan başka anahtarlar olabilir.
    katma yazar Rocket Hazmat, kaynak
    @Paul: Ben for için , foreach 'i kastettiğinizi düşünüyorum.
    katma yazar Rocket Hazmat, kaynak
    Bu JS kodu, JS kodu içinde foreach nasıl kullanabilirsiniz !!!!!
    katma yazar JimBo, kaynak

    reunits in an array containing objects that have a reun property which is array of objects. You first need to loop through the reunits array, and then loop through each reun array.

    $.each(data.reunits, function(){
      var str = '';
      $.each(this.reun, function(){
        str += this.name+' ';
      });
      $('.li_show').append($.trim(str));
    });
    
    0
    katma
    @JimBo: Biraz meşgulüm, belki daha sonra bakacağım. Ayrıştırma hatasına gelince, JSON'unuzun sonunda '; ' a ( data = $. ParseJSON (data); ) geçmeniz gerekir.
    katma yazar Rocket Hazmat, kaynak
    @JimBo: Bu soruda, ne istediğini bilmemiz gerektiğini belirtmelisin.
    katma yazar Rocket Hazmat, kaynak
    @JimBo: Biliyorum, ama her ismin nasıl alınacağını göstermeli. Çıktısını nasıl istediğinizi asla belirttiğiniz gibi, bir yere çıktı olarak size bırakacağım.
    katma yazar Rocket Hazmat, kaynak
    Kemanı kontrol ettin mi? Kod ayrıştırma hatası verir
    katma yazar FreeCandies, kaynak
    Bu kodun çıkışı yok
    katma yazar JimBo, kaynak
    Ben etiket li her üç kez yapmak istiyorum, çünkü üç reunits.reun vardır:
  • 11 11
  • 666666666 99999 777777 1221
  • 55555 00000000 222222222 333333333
  • katma yazar JimBo, kaynak
    Lütfen buraya bakın: tam json'um ve ne istediğimi jsfiddle.net/M4WQs/3 . Bu json kodu her ad_reip her bir reunits.reun koymak nasıl?
    katma yazar JimBo, kaynak