JQuery и массив JSON – Как проверить, пуст или неопределен ли массив?

Мне нужно передать php-массив в jquery для некоторых задач. Массив php создается для SESSION, а затем json_encoded для jquery. После этого я буду хранить эту переменную в пространстве имен js окна, чтобы использовать массив в моем jquery-скрипте.

if(isset($_SESSION['mySession'])){ $json_array = json_encode($php_array); } <script> <?php echo "window.json_from_php = ".$json_array; ?> </script> 

То, что мне нужно сделать, это проверить, существует ли этот массив вообще /, является пустым / неопределенным, прежде чем что-либо делать. Предложение проверки успешно выполняется для «неопределенного» операнда, но не для остальных. Как я могу проверить в jquery, является ли массив пустым или нет?

Это результат массива json_encoded после инициализации, когда в $ php_array нет элементов:

 string '[""]' (length=4) 

И вот jquery:

 $(function() { var results = $('#results'); var js_array = window.json_from_php; var count = js_array.length; if ((typeof window.json_from_php === 'undefined') || (js_array === null) || (jQuery.isEmptyObject(js_array)) || (count === 0)) { $('<p>Array is empty.</p>').appendTo(results); } else { jQuery.each(js_array,function(key,val){ $('<ul><li id="'+key+'">'+val+'</li></ul>').appendTo(results); }); } }); 

Вот как я проверяю пустой / нулевой массив json.

 if (js_array == undefined || js_array == null || js_array.length == 0){ $('<p>Array is empty.</p>').appendTo(results); } 

Если ваш json-массив равен [""] вам может потребоваться добавить что-то вроде

 if (js_array == undefined || js_array == null || js_array.length == 0 || (js_array.length == 1 && js_array[0] == "")) 

Этого должно быть достаточно:

 if (typeof js_array === 'undefined' || !js_array.length) { $('<p>Array is empty.</p>').appendTo(results); } else {...}