[英]Loop through JSON array element in Javascript
我有一个像这样的JSON结构:
{
listOfVal: [
val1,
val2,
val3
]
name: "app"
id: "9209629"
}
我想检查listOfVal
是否说val2
。 val2
可以是任何索引。
此JSON是对API调用的响应的一部分,我正在使用:
var data = JSON.parse(responseBody);
保存JSON数据。
首先,您的JSON无效。 您缺少逗号和引号。
{
"listOfVal": [
val1,
val2,
val3
],
"name": "app",
"id": "9209629",
...
}
一旦有了data
,就使用for
循环对其进行迭代。 您可以使用indexOf
,但是在IE < 9
不起作用
function isInJSON(data, value){
for(var i=0; i<data.listOfVal.length; i++){
if(data.listOfVal[i] === value){
return true;
}
}
return false;
}
如果您的val
是数组或对象,那么这将并不总是有效。 如果是这样,你可以运行for
循环对它们进行比较,或者你可以使用underscore.js
: _.isEqual(obj1,obj2)
OP使用forEach
请求:
var value; //define what you're looking for
data.listOfVal.forEach(function(val,key){
if(val === value){
alert('MATCH FOUND: responseBody["' + String(key) + '"] = ' + String(value));
}
});
如果在使用JSON.parse之后,您有一个像这样的对象:
data = {
listOfVal: [
val1,
val2,
val3
],
name: 'app',
id: '9209629'
...
}
然后,您可以像访问其他对象一样访问listOfVal,并使用indexOf尝试到达val2。
data.listOfVal.indexOf(val2);
这将返回val2驻留在数组中的非负整数索引,或者将返回-1,表明val2在数组中不存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.