Javascript 基于给定值检索json对象
从下面的json中,如何基于给定的applicationName检索对象Javascript 基于给定值检索json对象,javascript,json,Javascript,Json,从下面的json中,如何基于给定的applicationName检索对象 { "apps": [ { "applicationName": "myTestApp", "keys": [ { "key": "app-key", "value": "ZDM0" },
{
"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);
}