Javascript 基于给定值检索json对象

Javascript 基于给定值检索json对象,javascript,json,Javascript,Json,从下面的json中,如何基于给定的applicationName检索对象 { "apps": [ { "applicationName": "myTestApp", "keys": [ { "key": "app-key", "value": "ZDM0" },

从下面的json中,如何基于给定的applicationName检索对象

{
    "apps": [
        {
            "applicationName": "myTestApp",
            "keys": [
                {
                    "key": "app-key",
                    "value": "ZDM0"
                },
                {
                    "key": "env-key",
                    "value": "YTE1Mm"
                }
            ]
        },
        {
            "applicationName": "hello",
            "keys": [
                {
                    "key": "app-key",
                    "value": "ZjIwZT"
                },
                {
                    "key": "env-key",
                    "value": "MDExMTc5N2"
                }
            ]
        }
    ]
}
所以如果我的输入是myTestApp,我想得到myTestApp对象

{
    "applicationName": "myTestApp",
    "keys": [
        {
            "key": "app-key",
            "value": "ZDM0"
        },
        {
            "key": "env-key",
            "value": "YTE1Mm"
        }
    ]
}

这应该可以做到:
(假设您的
数据
是存储数据的变量)


var jsonData;//将json数据放在这里

var appsArr = jsonData.apps;

for (var i in appsArr) {
   if(appsArr[i].applicationName == "myTestApp") {
      var requiredObj = appsArr[i];
      break;
   }
}

requiredObj
是您想要的对象。

您应该遍历JSON数组并检查
applicationName
的值。检查这把小提琴


如果你的JSON太大,你也可以使用一个外部javascript库,比如Defiant(),这使得搜索变得简单和快速
“{\'a\':2}”
是JSON字符串的一个示例。JavaScript中只有一个JSON对象,并且它具有属性
parse
stringify
。TJS库没有比简单循环更快的方法。谢谢+1用于使用过滤器。就知识而言,使用过滤器或循环哪个会更快?一个断开的循环可能会快一点(不足以注意到差异,两者都已经非常快了)。但是,
过滤器将返回所有结果,
for
循环仅返回第一个结果。
var appsArr = jsonData.apps;

for (var i in appsArr) {
   if(appsArr[i].applicationName == "myTestApp") {
      var requiredObj = appsArr[i];
      break;
   }
}
var object = yourJSONdata;
for(var i in object.apps){
if("hello" == object.apps[i].applicationName)
    alert(i);
}