web-dev-qa-db-ja.com

jQuery looping .each()JSONキー/値が機能しない

JQuery .each()関数によるJSONのキー/値のループで問題が発生しています

最初は次のようなJSONがあります。

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

そして、私はJSON内のすべてのキー/値要素(aaaとbbb)をループし、ループするために内部JSON配列を取得したいので、試しました

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

ただし、最初の.each()関数はjson全体を単一の構造と見なし、その要素のキーでループしないことを発見しました。each()関数から受け取ったデータパラメーターは、常に元のjsonそのものです。 aaaとbbbの内部JSON配列を指す参照を取得することはできません。

ここで何が問題になりますか?jQueryによってJSONのすべてのキー/値要素を適切にループするにはどうすればよいですか?

29
passer

JQueryラッパーではなくオブジェクトがあるので、 $。each() の異なるバリアントを使用する必要があります

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

デモ: フィドル

62
Arun P Johny

単純なJSONオブジェクトを使用すると、jQueryは必要ありません。

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