[英]Check if key exists in JSON object using jQuery
我已經完成了AJAX驗證,並且驗證的消息作為JSON數組返回。 因此,我需要檢查密鑰,如name
和email
,是否在該JSON數組中。
{
"name": {
"isEmpty": "Value is required and can't be empty"
},
"email": {
"isEmpty": "Value is required and can't be empty"
}
}
只有存在密鑰名稱時,我才需要在name
字段中寫入錯誤消息。
以下是輸入字段時顯示錯誤的代碼
if (obj['name']'isEmpty'] != "") {
$('#name').after(c1 + "<label class='error'>" + obj['name']['isEmpty'] + "</label>");
}
if (obj['email']['isEmpty'] != "" ) {
$('#email').after(c4 + "<label class='error'>" + obj['email']['isEmpty'] + "</label>");
}
但是如果輸入了name
字段,它將不在JSON數組中。 所以檢查聲明
if (obj['name']['isEmpty'] != "")
將導致以下錯誤:
找不到obj.name
沒有必要在數組中使用密鑰name
。 同時我需要檢查這個,以便在數組擁有密鑰name
顯示錯誤。
使用JavaScript的hasOwnProperty()
函數:
if (json_object.hasOwnProperty('name')) {
//do struff
}
你不需要簡單的JQuery
if(yourObject['email']){
// what if this property exists.
}
與任何價值email
將返回true
,如果沒有這樣的屬性或屬性值是null
或undefined
將導致對false
if(typeof theObject['key'] != 'undefined'){
//key exists, do stuff
}
//or
if(typeof theObject.key != 'undefined'){
//object exists, do stuff
}
我在這里寫,因為似乎沒有人給出正確的答案..
我知道它已經老了......
有人可能質疑同樣的事情..
如果你有一個數組
var subcategories=[{name:"test",desc:"test"}];
function hasCategory(nameStr) {
for(let i=0;i<subcategories.length;i++){
if(subcategories[i].name===nameStr){
return true;
}
}
return false;
}
如果你有一個對象
var category={name:"asd",test:""};
if(category.hasOwnProperty('name')){//or category.name!==undefined
return true;
}else{
return false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.