Javascript 检查来自服务器的JSON中是否存在密钥
在纯JavaScript中,我想检查是否存在JSON键。JSON的格式如下(我简化): 我必须检查是否存在“c”(Javascript 检查来自服务器的JSON中是否存在密钥,javascript,Javascript,在纯JavaScript中,我想检查是否存在JSON键。JSON的格式如下(我简化): 我必须检查是否存在“c”(a.b.c),因为在某些情况下,服务器返回一个包含“d”而不是“c”的JSON 非常感谢您的帮助。使用解析json后,您可以使用Object.keys()和indexOf() var data={“a”:{“b”:{“c”:“,“d”:“t”} var result=Object.keys(data.a.b).indexOf('c')!=-1. console.log(result
a.b.c
),因为在某些情况下,服务器返回一个包含“d”而不是“c”的JSON
非常感谢您的帮助。使用解析json后,您可以使用Object.keys()
和indexOf()
var data={“a”:{“b”:{“c”:“,“d”:“t”}
var result=Object.keys(data.a.b).indexOf('c')!=-1.
console.log(result)
使用解析json后,可以使用Object.keys()
和indexOf()
var data={“a”:{“b”:{“c”:“,“d”:“t”}
var result=Object.keys(data.a.b).indexOf('c')!=-1.
log(result)
我假设服务器响应已经解析到js对象中
var abc = {"a":{"b":{"c":"","d":"t"}}};
if(abc.a.b.hasOwnProperty("c")){
// do something
}else{
// do something else
}
我假设服务器响应已经解析到js对象中
var abc = {"a":{"b":{"c":"","d":"t"}}};
if(abc.a.b.hasOwnProperty("c")){
// do something
}else{
// do something else
}
您可以使用具有属性的字符串来检查和。
功能检查(对象、路径){
返回路径.split('.').every(函数(k){
if(在本条中为k){
this.o=this.o[k];
返回true;
}
},{o:object});
}
var object={a:{b:{c:,d:{t}};
日志(检查(对象“a.b.c”);
控制台日志(检查(对象“y.b.c”)代码>您可以使用带有属性的字符串来检查和。
功能检查(对象、路径){
返回路径.split('.').every(函数(k){
if(在本条中为k){
this.o=this.o[k];
返回true;
}
},{o:object});
}
var object={a:{b:{c:,d:{t}};
日志(检查(对象“a.b.c”);
控制台日志(检查(对象“y.b.c”)代码>
参见jsFiddle
请参见jsFiddle/“c”:/.test(strResponse)
请@dandavis,您能展开一点吗?@dandavis,这将检查“c”
是否存在于任何地方,包括在其他级别或作为值。您只想检查c
或c
是否在a.b
中?我没有注意到:
所以它确实与值不匹配,但它肯定会匹配名为c
/“c”的任何键。test(strResponse)
请@dandavis,你能稍微扩展一下吗?@dandavis,这将检查中是否存在“c”
,包括在其他级别或作为一个值。你只想检查c
,或者c
是否在a.b
中?我没有注意到:
,因此它确实与值不匹配,但是它肯定会匹配任何名为c
的键。这通常是一个不错的选择,但是要注意,如果abc.a.b.c
是falsy(例如,它的值是0或空字符串),你最终会做同样的事情,就像它根本不在那里一样。@jcaron:这正是我来这里的原因!我在找一个不同的approach@3000您可以通过返回a&&a.b&&a.b.c
来简化它–只有当整个对象/结构存在时,它才会提供c
的值。这通常是一个不错的选择,但请注意,如果abc.a.b.c
是错误的(例如,其值为0或空字符串),你最终会做同样的事情,就像它根本不在那里一样。@jcaron:这就是我来这里的原因!我在找一个不同的approach@3000您可以通过返回a&&a.b&&a.b.c
来简化它–只有当整个对象/结构存在时,它才会提供c
的值。
function fnIsExist(o,key2Search){
var exist = false;
for(var k in o){
if(k == key2Search){
exist = true;
}else{
if( typeof o[k] == 'object'){
exist = fnIsExist(o[k],key2Search);
}
}
}
return exist;
}
var obj = {"a":{"b":{"c":"","d":"t"}}};
var key = 'd';
var isExist = fnIsExist(obj,key);
console.log(isExist);