JQuery:获取JSON回复的长度?

时间:2010-04-07 18:21:20

标签: javascript jquery ajax json

在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 个答案:

答案 0 :(得分:3)

  

如果房间为空,则返回为{}。

因此,它不是一个数组,而是一个对象。对象没有长度。只有一个。如果您想表示 nothing ,请使用null代替{}。这样您就可以使用if (rooms)

要了解有关JSON的更多信息,您可能会发现this article很有用。

答案 1 :(得分:0)

请尝试使用此方法,在您的情况下,空白时应为null:

if (rooms) {