2017-10-17 53 views
0

如何爲特定JSON名稱對的空值編寫測試。例如,我有這樣的JSON:郵遞員測試json名稱空字典值

{ 
    "data": { 
     "sectionGroupName": "PPConfig:APIMethod", 
     "sections": {} 
    }, 
    "success": true, 
    "errorMessage": "" 
} 

我要檢查,如果部分是空的,喜歡它是在這種情況下。我這樣寫的其他成功的測試:

tests["Status code is 200"] = responseCode.code === 200; 
var body = JSON.parse(responseBody); 
tests["Success Response"] = body.success === true; 
tests["No Error message"] = body.errorMessage === ""; 
tests.Data = body.data.sectionGroupName === "PPConfig:APIMethod"; 

但我一直沒能找到成功的測試代碼,檢查是否具有特定名稱的值是一個空的字典。作爲例子,有人可以幫助我嗎?

回答

0

您可以獲得sections的屬性列表並測試其長度。

let sectionKeys = Object.keys(body.data.sectionGroupName) 
if(sectionKeys.length){ 
    //Proceed with section 
} else { 
    //Proceed when it's empty 
} 

Object.keys()

+0

非常感謝! –

0

this link 檢查,如果它是一個字典(使用您的 '部分' 爲v)

function isDict(v) { 
    return !!v && typeof v==='object' && v!==null && !(v instanceof Array) && !(v instanceof Date) && isJsonable(v); 
} 

然後確認是否是空的(從this other link)用途:

function isEmpty(obj) { 
    for (var x in obj) { return false; } 
    return true; 
} 

這應該工作

+0

這適用於使用函數 - 謝謝。 –