簡體   English   中英

使用jQuery檢查JSON對象中是否存在密鑰

[英]Check if key exists in JSON object using jQuery

我已經完成了AJAX驗證,並且驗證的消息作為JSON數組返回。 因此,我需要檢查密鑰,如nameemail ,是否在該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 ,如果沒有這樣的屬性或屬性值是nullundefined將導致對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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM