web-dev-qa-db-fra.com

Vérifier si la clé existe dans l'objet JSON à l'aide de jQuery

J'ai fait AJAX et le message validé sont renvoyés sous forme de tableau JSON. Par conséquent, je dois vérifier si les clés, comme name et email, sont dans ce tableau JSON.

{
    "name": {
        "isEmpty": "Value is required and can't be empty"
    },
    "email": {
        "isEmpty": "Value is required and can't be empty"
    }
}

Seulement si le nom de la clé est présent, j'ai besoin d'écrire un message d'erreur dans le champ name.

Voici le code pour afficher une erreur si des champs sont entrés

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

Mais si le champ name est entré, il ne sera pas dans le tableau JSON. Donc, la déclaration de vérification

if (obj['name']['isEmpty'] != "")

entraînera l'erreur suivante:

obj.name introuvable


Il n'est pas nécessaire d'avoir la clé name dans le tableau. En même temps, je dois vérifier cela pour afficher l'erreur si le tableau possède la clé name.

35
nidhin

Utilisez la fonction hasOwnProperty() de JavaScript:

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

Pas besoin de JQuery tout simplement, vous pouvez le faire

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

comme avec toute valeur pour email vous renverra true, s'il n'y a pas une telle propriété ou que cette valeur de propriété est null ou undefined résultera en false

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

//or

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

J'écris ici parce que personne ne semble donner la bonne réponse ..

Je sais que c'est vieux ...

Quelqu'un pourrait remettre en question la même chose ..

14
jujiyangasli

si vous avez un tableau

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

si vous avez un objet

var category={name:"asd",test:""};

if(category.hasOwnProperty('name')){//or category.name!==undefined
   return true;
}else{
   return false;
}
3
Vahap Gençdal