синтаксический анализ jQuery многомерный массив JSON

У меня есть массив JSON как это:

{
  "forum":[
    {
      "id":"1",
      "created":"2010-03-19 ",
      "updated":"2010-03-19 ","user_id":"1",
      "vanity":"gamers",
      "displayname":"gamers",
      "private":"0",
      "description":"All things gaming",
      "count_followers":"62",
      "count_members":"0",
      "count_messages":"5",
      "count_badges":"0",
      "top_badges":"",
      "category_id":"5",
      "logo":"gamers.jpeg",
      "theme_id":"1"
    }
  ]
}

Я хочу использовать jQuery .getJSON чтобы смочь возвратить значения каждого из значений массива, но я не уверен относительно того, как получить доступ к ним.

До сих пор у меня есть этот код jQuery:

$.get('forums.php', function(json, textStatus) {
            //optional stuff to do after success
            alert(textStatus);
            alert(json);

        });

Как я могу сделать это с jQuery?

21
задан Doug 26 March 2016 в 07:40
поделиться

2 ответа

{} в JSON представляет объект. Каждое из свойств объекта представлено ключ: значение и разделено запятой. Значения свойств доступны по ключу с помощью оператора точки, например json.forum . [] в JSON представляет собой массив. Значения массива могут быть любым объектом, значения разделяются запятыми. Чтобы перебрать массив, используйте стандартный цикл for с индексом. Чтобы перебирать свойства объекта, не обращаясь к ним напрямую по ключу, вы можете использовать for in loop:

var json = {"forum":[{"id":"1","created":"2010-03-19 ","updated":"2010-03-19 ","user_id":"1","vanity":"gamers","displayname":"gamers","private":"0","description":"All things gaming","count_followers":"62","count_members":"0","count_messages":"5","count_badges":"0","top_badges":"","category_id":"5","logo":"gamers.jpeg","theme_id":"1"}]};

var forum = json.forum;

for (var i = 0; i < forum.length; i++) {
    var object = forum[i];
    for (property in object) {
        var value = object[property];
        alert(property + "=" + value); // This alerts "id=1", "created=2010-03-19", etc..
    }
}

Если вы хотите сделать это способом jQueryish, возьмите $. Each () :

$.each(json.forum, function(i, object) {
    $.each(object, function(property, value) {
        alert(property + "=" + value);
    });
});

Я использовал те же имена переменных, что и в «простом JavaScript», чтобы вы лучше понимали, что jQuery делает с ним «под капотом». Надеюсь это поможет.

59
ответ дан 16 October 2019 в 23:39
поделиться

Это должно работать нормально. Просто используйте $. GetJSON вместо $. Get .

0
ответ дан 16 October 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: