zapętlanie jQuery.each () JSON klucz/wartość nie działa

Mam problemy z zapętleniem klucza / wartości JSON przez jQuery .funkcja each ()

Początkowo mam JSON taki:

json = {"aaa":[
              {"id":"1","data":"aaa1data"}
              ,{"id":"2","data":"aaa2data"}
              ],
        "bbb":[
              {"id":"3","data":"bbb1data"}
              ]
       }

I chciałbym przejrzeć wszystkie elementy klucza / wartości wewnątrz JSON (aaa i bbb) i odzyskać wewnętrzne tablice JSON do zapętlenia ponownie, więc próbowałem

$(json).each(function(index,data)
{
    var zzz = data;
    $(zzz).each(function(index,data))
    {
       //some other stuff
    }
}
Jednak odkryłem, że pierwszy .każda funkcja () będzie traktowała cały json jako jedną strukturę i nie będzie pętli na kluczu swojego elementu.Dane parametr otrzymany z .każda funkcja () jest zawsze oryginalnym json. Nigdy nie mogę uzyskać odniesienia, które wskazuje na wewnętrzną tablicę JSON aaa i bbb.

Jaki byłby tu problem i jak prawidłowo zapętlić wszystkie elementy klucza / wartości w JSON przez jQuery?

Author: passer, 2013-11-14

2 answers

Ponieważ masz obiekt, a nie wrapper jQuery, musisz użyć innego wariantu $.każdy()

$.each(json, function (key, data) {
    console.log(key)
    $.each(data, function (index, data) {
        console.log('index', data)
    })
})

Demo: Fiddle

 67
Author: Arun P Johny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-24 18:53:42

Z prostym obiektem JSON, nie potrzebujesz jQuery:

for (var i in json) {
   for (var j in json[i]) {
     console.log(json[i][j]);
   }
}
 11
Author: Jeff Sisson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-14 04:53:07