Подтвердить что ты не робот

Проверьте, существует ли ключ в массиве JSON, используя JQuery

Я сделал проверку AJAX, и подтвержденное сообщение возвращается как массив JSON. Поэтому мне нужно проверить, находятся ли в этом массиве JSON ключи, такие как name и email.

{"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 not found.

Нет необходимости иметь ключ name в массиве. В то же время мне нужно проверить, чтобы это отображало ошибку, если массив имеет ключ name.

4b9b3361

Ответ 1

использовать javascript hasOwnProperty,

if(json_object.hasOwnProperty('name')){
//do struff
}

Ответ 2

Нет необходимости в JQuery, просто вы можете сделать

if(yourObject['email']){
 // what if this property exists.
}

как и любое значение для email, вернет вас true, если такого свойства нет или значение свойства null или undefined приведет к false

Ответ 3

if(typeof theObject['key'] != 'undefined'){
     //key exists, do stuff
}

//or

if(typeof theObject.key != 'undefined'){
    //object exists, do stuff
}

Я пишу здесь, потому что никто, кажется, не дает правильного ответа.

Я знаю это старый...

Кто-то может подвергнуть сомнению одно и то же.

Ответ 4

если у вас есть массив

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;
}