JQuery和JSON数组 – 如何检查数组是空还是未定义?

我需要将php数组传递给jquery来完成某些任务。 为SESSION创建php数组,然后为jquery创建json_encoded。 之后,我将该变量存储到window js命名空间,以便在我的jquery脚本中使用该数组。

if(isset($_SESSION['mySession'])){ $json_array = json_encode($php_array); }    

我需要做的是在做任何事之前检查这个数组是否存在/是空/未定义。 check子句对’undefined’操作数成功,但对其余操作不成功。 如何在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)) { $('

Array is empty.

').appendTo(results); } else { jQuery.each(js_array,function(key,val){ $('
  • '+val+'
').appendTo(results); }); } });

这是我检查空/ null json数组的方法。

 if (js_array == undefined || js_array == null || js_array.length == 0){ $('

Array is empty.

').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) { $('

Array is empty.

').appendTo(results); } else {...}