使用JQuery检查JSON数组中是否存在密钥

nid*_*hin 35 javascript jquery json

我已经完成了AJAX验证,并且验证的消息作为JSON数组返回.因此,我需要检查是否钥匙,像nameemail,是在JSON阵列.

{
    "name": {
        "isEmpty": "Value is required and can't be empty"
    },
    "email": {
        "isEmpty": "Value is required and can't be empty"
    }
}
Run Code Online (Sandbox Code Playgroud)

仅当密钥名称存在时,我才需要向该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>");
}
Run Code Online (Sandbox Code Playgroud)

但是如果name输入该字段,它将不在JSON数组中.因此,检查语句name将导致错误name.

没有必要name在数组中使用密钥.同时我需要检查这个,以便在数组拥有密钥时显示错误email.

Dau*_*Dau 86

使用javascript的hasOwnProperty函数,

if (json_object.hasOwnProperty('name')) {
    //do struff
}
Run Code Online (Sandbox Code Playgroud)


Pok*_*uri 17

你不需要简单的JQuery

if(yourObject['email']){
 // what if this property exists.
}
Run Code Online (Sandbox Code Playgroud)

如果没有这样的财产或者财产价值是或将导致的,那么email将返回您的任何价值truenullundefinedfalse

  • 如果`email`的值是'0`,'false`或空字符串怎么办?该物业确实存在,但这表明它不存在. (5认同)

小智 14

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

//or

if(typeof theObject.key != 'undefined'){
    //object exists, do stuff
}
Run Code Online (Sandbox Code Playgroud)

我在这里写,因为似乎没有人给出正确的答案..

我知道它已经老了......

有人可能质疑同样的事情..