JQuery looping .each () La clé / valeur JSON ne fonctionne pas

J'ai eu des problèmes lors de la mise en boucle de la clé / valeur de JSON par jQuery .each () function

Au début, j'ai un JSON comme ceci:

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

Et j'aimerais boucler tous les éléments de clé / valeur dans le JSON (aaa et bbb) et récupérer les tableaux internes JSON pour boucler à nouveau, alors j'ai essayé

 $(json).each(function(index,data) { var zzz = data; $(zzz).each(function(index,data)) { //some other stuff } } 

Cependant, j'ai découvert que la première fonction .each () considérerait l'ensemble du json comme une structure unique et ne bouclera pas la clé de son élément. Le paramètre de données reçu de la fonction .each () est toujours le json d'origine lui-même. Je ne peux jamais obtenir la référence qui pointe vers le tableau intérieur JSON de aaa et bbb.

Quel serait le problème ici et comment puis-je faire une boucle pour tous les éléments de clé / valeur dans un JSON par jQuery correctement?

Étant donné que vous avez un objet, pas un wrapper jQuery, vous devez utiliser une variante différente de $ .each ()

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

Demo: Fiddle

Avec un simple objet JSON, vous n'avez pas besoin de jQuery:

 for (var i in json) { for (var j in json[i]) { console.log(json[i][j]); } }