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

У меня есть запрос, который возвращает объект JSON с единственным свойством, которое является массивом. Как я могу проверить, пуст ли массив?

С кодом jQuery, например:

 $.getJSON(
            jsonUrl,
            function(data) {
                if (data.RoleOwners == [ ]) {
                    $('<tr><td>' + noRoleOwnersText + '</td></tr>').appendTo("#roleOwnersTable tbody");
                    return;
                }
                $.each(data.RoleOwners, function(i, roleOwner) {
                    var tblRow =
                    "<tr>"
                    + "<td>" + roleOwner.FirstName + "</td>"
                    + "<td>" + roleOwner.LastName + "</td>"
                    + "</tr>"
                    $(tblRow).appendTo("#roleOwnersTable tbody");
                });

что я могу поставить вместо if (data.RoleOwners == []), чтобы проверить, является ли RoleOwners пустым массивом?

Спасибо, Мэтт

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
22
0
52 088
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий
(data.RoleOwners.length === 0)

Я не понимаю. Почему -1? „! []. Length“ - короче и правильно, имхо.

Ed Gomoliako 02.09.2009 15:43

Согласовано, должно быть .length === 0 или! []. Length, как указано выше. В любом случае этот вопрос вовсе не об объектах JSON, а о массивах Javascript.

balupton 11.07.2010 17:37

Lol, спасибо за это, я думал, что попробовал, но вместо этого я должен был попробовать .Length.

mattcole 20.01.2011 02:20

Cyle stackoverflow.com/questions/5447024/…

Pedro Montoto García 30.05.2013 19:25

Еще можно сделать jQuery.isEmptyObject(data.RoleOwners)

проверить http://api.jquery.com/jQuery.isEmptyObject/

Этот ответ работал, когда пустой массив или нулевой массив передается через результат данных (принятый ответ не работал), спасибо за это

JakeJ 24.04.2012 17:42

Массив (также являющийся объектом) может иметь нечисловые свойства, которые не обнаруживаются при проверке на нулевую длину. Вам нужно перебирать свойства так же, как при тестировании пустого объекта. Если свойств нет, массив пуст.

function isEmptyObject(obj) {
   // This works for arrays too.
   for(var name in obj) {
       return false
   }
   return true
}

приведенный ниже код отлично работает, нет необходимости писать собственный.

   // anyObjectIncludingJSON i tried for JSON object.

         if (jQuery.isEmptyObject(anyObjectIncludingJSON))
            {
                return;
            }

Арун, я заметил, что вы хорошо разбираетесь в API jQuery, вы всегда давали ссылку на встроенный API JQuery, а не заново изобретали .. колеса .. хорошо

Archana Mundaye 27.11.2015 10:31

Проверь это

JSON.parse(data).length > 0

Другие вопросы по теме