Подтвердить что ты не робот

JQuery looping.each() JSON ключ/значение не работает

У меня возникают проблемы с циклом ключа/значения JSON с помощью функции jQuery.each()

Изначально у меня есть JSON:

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

И я хотел бы пропустить все элементы key/value внутри JSON (aaa и bbb) и получить внутренние массивы JSON для циклического повтора, поэтому я попробовал

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

Однако я обнаружил, что первая функция .each() будет рассматривать весь json как единую структуру и не будет зацикливаться на ключе элемента. Параметр данных, полученный из функции .each(), всегда является исходным самим json, Я никогда не могу получить ссылку, указывающую на внутренний массив JSON aaa и bbb.

В чем проблема, и как я должен полностью зацикливаться на всех элементах key/value в JSON с помощью jQuery?

4b9b3361

Ответ 1

Поскольку у вас есть объект, а не обертка jQuery, вам нужно использовать другой вариант $. each()

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

Демо: Fiddle

Ответ 2

С помощью простого объекта JSON вам не нужен jQuery:

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