Javascript 确定JSON对象在jQuery中是否包含特定的字段名
是否可以确定JSON对象是否包含指定的“字段名”。Javascript 确定JSON对象在jQuery中是否包含特定的字段名,javascript,jquery,json,Javascript,Jquery,Json,是否可以确定JSON对象是否包含指定的“字段名”。 例如: 如果我有一个JSON对象,例如: {"event": [ {"query": {"id": [ {"timestamp_usec":"1316596939223064"} ], "query_text":"sometext" }
例如: 如果我有一个JSON对象,例如:
{"event":
[
{"query":
{"id":
[
{"timestamp_usec":"1316596939223064"}
],
"query_text":"sometext"
}
},
{"query":
{"id":
[
{"timestamp_usec":"1316318681908642","type":"sometype","abc":"someabc"},
{"timestamp_usec":"1316318679366796"}
],
"query_text":"someothertext"
}
},
//...More...//
]
}
在if语句中,我可以使用什么作为条件来确定特定的“id对象”是否包含“abc”
更简单地说:
FOR ALL jsonpath id's
IF jsonpath.id **CONTAINS** "abc"
THEN do something
ELSE do something different
END LOOP
$.getJSON("test.json", function(data) {
var search = data.event
$.each(data.event, function(i, item) {
var searchMeta = data.event[i].query.id;
$.each(searchMeta[i], function(i, deeper){
if (searchMeta[i]. == "abc"){
//do something
} else {
//do something different
}
})
})
});
我正在寻找jQuery函数来实现这一点(如果有的话!)
我的代码:
FOR ALL jsonpath id's
IF jsonpath.id **CONTAINS** "abc"
THEN do something
ELSE do something different
END LOOP
$.getJSON("test.json", function(data) {
var search = data.event
$.each(data.event, function(i, item) {
var searchMeta = data.event[i].query.id;
$.each(searchMeta[i], function(i, deeper){
if (searchMeta[i]. == "abc"){
//do something
} else {
//do something different
}
})
})
});
我知道在上面的例子中,我可以通过循环id对象的数量来实现我想要的,例如如果num<1。但是我不确定我的数据在多个.json文件中的一致性。json.stringify(json)这会将json作为字符串提供给您,然后您可以使用正则表达式检查json中是否有文件。尝试定义一个函数来调用数据
对象中的每个对象
// property `name` to check
var name = "abc";
var check = function check(obj, name) {
// if `obj` is `Object` ,
// and `obj` has property `name` ,
// do stuff
if (/Object/.test(obj.constructor.toString())
&& obj.hasOwnProperty(name)) {
console.log(name + " found")
}
// else , do other stuff
else {
console.log(name + " not found")
}
};
$.each(data.event, function(key, value) {
check(value, name);
$.each(value.query, function(k, v) {
check(v, name);
// if `v` is an `Object` , call check for
// call `check` on each `v` `Object`
if (typeof v === "object") {
$.each(v, function(_k, _v) {
check(_v, name);
})
};
});
});
var数据={
“事件”:[{
“查询”:{
“id”:[{
“时间戳_usec”:“1316596939223064”
}],
“查询文本”:“sometext”
}
}, {
“查询”:{
“id”:[{
“timestamp_usec”:“1316318681908642”,
“类型”:“某种类型”,
“abc”:“someabc”
}, {
“时间戳_usec”:“1316318679366796”
}],
“查询文本”:“someothertext”
}
}
//……更多//
]
};
风险值数据={
“事件”:[{
“查询”:{
“id”:[{
“时间戳_usec”:“1316596939223064”
}],
“查询文本”:“sometext”
}
}, {
“查询”:{
“id”:[{
“timestamp_usec”:“1316318681908642”,
“类型”:“某种类型”,
“abc”:“someabc”
}, {
“时间戳_usec”:“1316318679366796”
}],
“查询文本”:“someothertext”
}
}
//……更多//
]
};
//要检查的属性“name”
var name=“abc”;
var检查=功能检查(obj,名称){
//如果`obj`是`Object`,
//而'obj'有'name'属性,
//做事
if(/Object/.test(obj.constructor.toString())
&&对象hasOwnProperty(名称)){
var res={};
res[name]=obj[name];
$(“body”).append(JSON.stringify(res)+“found”)
}
//否则,做其他事情
否则{
console.log(名称+“未找到”)
}
};
$.each(数据、事件、函数(键、值){
检查(值、名称);
$.each(value.query,function(k,v){
检查(v,名称);
//如果'v'是一个'Object',则调用check
//对每个“v”对象调用“check”
如果(v的类型==“对象”){
$。每个(v,函数(_k,_v){
检查(_v,名称);
})
};
});
});代码>