Итерация через/Парсинг Объект JSON через JavaScript

Информация о зависимостях также включена в отчет об информации/Зависимостях Проекта, если Вы сделали, чтобы знаток генерировал сайт для проекта, с помощью mvn сайт.

9
задан Neuron 28 January 2019 в 12:54
поделиться

3 ответа

Ваш объект JSON неверен, потому что он имеет несколько свойств с одинаковым именем. Вы должны возвращать массив объектов "студент".

[
   {
     "id": 456,
     "full_name": "GOOBER ANGELA",
     "user_id": "2733245678",
     "stin": "2733212346"
   },
   {
     "id": 123,
     "full_name": "BOB, STEVE",
     "user_id": "abc213",
     "stin": "9040923411"
   }
]

Затем вы можете перебирать его следующим образом:

 for (var i = 0, len = objJSON.length; i < len; ++i) {
     var student = objJSON[i];
     $("<div id=\"" + student.id + "\">" + student.full_name + " (" + student.user_id + " - " + student.stin + ")</div>")...
 }
29
ответ дан 4 December 2019 в 06:30
поделиться

Текущий JSON не будет работать, потому что второй «student» эффективно заменяет первое, поскольку это просто свойства объекта.

Если вы можете управлять выводом JSON, измените его на:

{
  "student":[{
    "id": 456,
    "full_name": "GOOBER, ANGELA",
    "user_id": "2733245678",
    "stin": "2733212346"
    },{
    "id": 123,
    "full_name": "BOB, STEVE",
    "user_id": "abc213",
    "stin": "9040923411"
  }]
}

Тогда у вас есть массив, который можно перебирать в цикле:

for(var i=0; i<objJSON.student.length; i++) {
  ...objJSON.student[i]...
  }
3
ответ дан 4 December 2019 в 06:30
поделиться

С этим JSON есть проблема - внешние фигурные скобки должны быть квадратными, поскольку вам нужен список, а не карта (она же объект). Поскольку все объекты на карте имеют один и тот же ключ, он не будет анализировать правильно - последнее значение будет перезаписывать предыдущее в большинстве анализаторов.

Вы хотите:

[
  {
    "id": 456,
    "full_name": "GOOBER, ANGELA",
    "user_id": "2733245678",
    "stin": "2733212346"
  },
  {
    "id": 123,
    "full_name": "BOB, STEVE",
    "user_id": "abc213",
    "stin": "9040923411"
  }
]

или, альтернативно, карту с другими ключами:

{
  "456":{
    "id": 456,
    "full_name": "GOOBER, ANGELA",
    "user_id": "2733245678",
    "stin": "2733212346"
  },
  "123":{
    "id": 123,
    "full_name": "BOB, STEVE",
    "user_id": "abc213",
    "stin": "9040923411"
  }
}

Вы Для этой цели лучше использовать $ .getJSON, который является специализированной версией $ .ajax.

$.getJSON("someurl.com", function(students) {
  $.each(students, function() { 
    $("<div id=\"" + student.id + "\">" + student.full_name + " (" + student.user_id + " - " + student.stin + ")</div>").appendTo($container);
  });
});
4
ответ дан 4 December 2019 в 06:30
поделиться
Другие вопросы по тегам:

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