Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery检查JSON对象中是否存在键_Javascript_Jquery_Json - Fatal编程技术网

Javascript 使用jQuery检查JSON对象中是否存在键

Javascript 使用jQuery检查JSON对象中是否存在键,javascript,jquery,json,Javascript,Jquery,Json,我已经完成了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字段写入

我已经完成了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>");
}
将导致以下错误:

找不到obj.name


数组中不必有key
name
。同时,如果数组拥有键
name

使用JavaScript函数,我需要检查此项以显示错误:

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

不需要JQuery,只要你能做到

if(yourObject['email']){
 // what if this property exists.
}
电子邮件的任何值一样
将返回
true
,如果没有此类属性或属性值为
null
未定义
将导致
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;
    }

它返回false数组的大小写有键“name”或没有键“name”。根据用户的填写表单,数组有元素名称或emailit返回true的是键存在,如果没有则返回falseexists@Dau,为了完整性,它实际上检查提供的属性是否存在于该对象的原型链中的链接上。由于javascript是原型,其他对象可以通过继承原型从其他对象进行扩展。检查
hasOwnProperty
可确保您没有从对象原型链的更高位置“挖掘”项目。如果
email
的值为
0
,或
false
,或空字符串,该怎么办?该属性确实存在,但这将表明它不存在。这还将导致像
yourObject['toString']
这样的内容出现误报。使用
hasOwnProperty
。hasOwnProperty结果为false,不管名称是否存在,而不是if(obj['name']['isEmpty']!=“”)使用if(obj.hasOwnProperty('name')&&obj.name.hasOwnProperty('isEmpty')&&obj.name.isEmpty!=“”)谢谢,非常有用的解决方案。
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;
}