2015-10-12 219 views
0

我使用Jquery檢查來自ajax調用的對象是否爲空。檢查Json對象是否爲空

在這個例子中,我做了一個正確的AJAX調用,它返回一些數據。

console.log ("obj before Json parse: ",response); 
var test = $.isEmptyObject(response); 
console.log("test if object is empty:",test); 

obj before Json parse: [{"dateTime":"2015-10-02","entries":220}] 
est if object is empty: false 

但是在這個例子中,我做了一個不正確的AJAX調用,它不返回任何東西。

console.log ("obj before Json parse: ",response); 
var test = $.isEmptyObject(response); 
console.log("test if object is empty:",test); 

obj before Json parse: [] 
test if object is empty: false 

肯定測試變量在這種情況下應該是真的,因爲對象是空的?

+1

的[我如何測試一個空的Javascript對象?(可能的複製http://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty -javascript-object) – Diptox

+1

'isEmptyObject'應該只用於普通對象,你似乎有一個數組,並且可以直接使用'response.length'。 – adeneo

回答

2

使用length來檢查對象是否爲空。

var isEmpty = (response || []).length === 0; 
+0

我應該使用response.length;然後。因爲我剛剛測試了isPlainObject,並且在兩種情況下都返回false。 –

+0

@AndreasUldallLeonhard'isPlainObject'作用於對象,如果響應是數組,則使用'arr.length'來檢查它是否爲空 – Tushar

+0

如果'response'爲'null'或'undefined',則response.length'會引發錯誤。你可以更防守,並有'var test = response && response.length'。 – user5325596

0
var jsonData = JSON.parse(responseBody); 
tests['empty_or_not'] = jsonData.length === 0; 
+0

上面的代碼片段適合我 –