web-dev-qa-db-fra.com

jQuery en boucle .each () La clé / valeur JSON ne fonctionne pas

J'ai des problèmes pour boucler la clé/valeur de JSON avec la fonction jQuery .each ()

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

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

Et je voudrais parcourir tous les éléments clé/valeur à l’intérieur du JSON (aaa et bbb) et récupérer les tableaux JSON internes pour une nouvelle boucle, 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 le json entier comme une structure unique et ne ferait pas de boucle sur la clé de son élément. Le paramètre de données reçu de la fonction .each () est toujours le json original lui-même. Je ne peux jamais obtenir la référence qui pointe vers le tableau JSON interne de aaa et bbb.

Quel serait le problème ici et comment devrais-je boucler correctement pour tous les éléments clé/valeur dans un JSON par jQuery?

29
passer

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

Démo: Violon

62
Arun P Johny

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]);
   }
}
10
Jeff Sisson