JQuery: получить длину ответа JSON? - PullRequest
2 голосов
/ 07 апреля 2010

В вызове JQuery getJSON как узнать длину возвращаемого JSON?

function refreshRoomList() {
    $.getJSON('API/list_rooms',
          function (rooms) {
              if (rooms.length > 0) {
                  $("#existing-room-list").empty();
                  $("#join-existing-room").text("Join existing room:"); // this shouldn't be here
                  $.each(rooms, function (index, roomName) {
                      var newChild = sprintf('<li><a href="room?key=%s">%s</a></li>', index, roomName);
                      $("#existing-room-list").append(newChild);
                  });
              }
              else {
                  $("#join-existing-room").text("No rooms found.");
              }
          });
}

По какой-то причине это не сработает, но если я заменит rooms.length > 0 на true, распечатывается полный список номеров.

Если rooms пусто, оно возвращается как {}.

Ответы [ 2 ]

3 голосов
/ 07 апреля 2010

Если комната пуста, она возвращается как {}.

Таким образом, это не массив, а объект.Объекты не имеют длины.Там только один из этого.Если вы хотите обозначить ничто , тогда лучше использовать null вместо {}.Таким образом, вы можете использовать if (rooms).

Чтобы узнать больше о JSON, вы можете найти эту статью полезной.

0 голосов
/ 07 апреля 2010

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

if (rooms) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...