Javascript 使用jQuery检查JSON对象中是否存在键
我已经完成了AJAX验证,验证后的消息作为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字段写入
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;
}