Javascript 确定JSON对象在jQuery中是否包含特定的字段名

Javascript 确定JSON对象在jQuery中是否包含特定的字段名,javascript,jquery,json,Javascript,Jquery,Json,是否可以确定JSON对象是否包含指定的“字段名”。 例如: 如果我有一个JSON对象,例如: {"event": [ {"query": {"id": [ {"timestamp_usec":"1316596939223064"} ], "query_text":"sometext" }

是否可以确定JSON对象是否包含指定的“字段名”。
例如: 如果我有一个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,名称);
})
};
});
});