2016-11-16 164 views
-1

難以檢查JSON對象中是否存在屬性與檢查屬性是否爲空?檢查屬性是否存在與檢查是否爲空

你可以同時做兩個嗎?

+0

你能具體嗎? – randominstanceOfLivingThing

+0

http://stackoverflow.com/questions/6384421/check-whether-a-value-exists-in-json-object –

+0

如果一個屬性爲null,那麼它就是'=== null''。如果它沒有在JSON對象上設置,那麼它是'=== undefined'。 –

回答

3

您可以使用hasOwnProperty(prop)來確定屬性是否存在。

var a = { p: null }; 
a.p == null; // true 
a.hasOwnProperty('p'); // true 
+0

你也可以提到'in'運算符。 a中的'p' – zerkms

1

,用於檢查屬性是否存在的語法是:

if ('prop' in obj) 

if (obj.hasOwnProperty('prop')) 

檢查屬性是否爲空的語法是:

if (obj.prop === null) 

一般情況下你不能在一個單一操作。如果該物業不存在,obj.prop將爲undefined,因此=== null將爲false。

但是,在很多情況下,您事先知道房產將包含什麼樣的價值。如果你知道,如果它存在,它將永遠是一個truthy值,你可以簡單的寫:

if (obj.prop) 

一個共同的情況下發生這種情況是當屬性總是包含一個對象。我們可以利用這樣的成語如下:

if (obj && obj.prop && obj.prop.subprop && obj.prop.subprop.number == 3)