从下面的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"
}
]
}
答案 0 :(得分:4)
这应该可以解决问题:
(假设您的data
是数据存储在其中的变量)
var result = data.apps.filter(function(app){
return app.applicationName === "myTestApp";
});
if(result.length){ // If there are any results, then
console.log(result[0]) // `result[0]` is the app with the right name.
}
答案 1 :(得分:1)
var jsonData; //把你的json数据放在这里
var appsArr = jsonData.apps;
for (var i in appsArr) {
if(appsArr[i].applicationName == "myTestApp") {
var requiredObj = appsArr[i];
break;
}
}
requiredObj
是您想要的对象。
答案 2 :(得分:0)
您应该遍历JSON数组并检查applicationName
的值。检查这个小提琴
http://jsfiddle.net/bcudcyf6/1/
var object = yourJSONdata;
for(var i in object.apps){
if("hello" == object.apps[i].applicationName)
alert(i);
}
如果您的JSON太大,您还可以使用外部JavaScript库,例如Defiant(http://www.defiantjs.com/),这样可以轻松快速地进行搜索