在Javascript中遍历JSON数组元素

Loop through JSON array element in Javascript

本文关键字:JSON 数组元素 遍历 Javascript      更新时间:2023-09-26

我有一个JSON结构,如:

{
    listOfVal: [
        val1,
        val2,
        val3
    ]
    name: "app"
    id: "9209629"
}

我想检查listOfVal是否有val2val2可以在任何指标上。

这个JSON是对API调用的响应的一部分,我使用:

var data = JSON.parse(responseBody);

首先,您的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)

请求使用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。解析你有这样一个对象:

data = {
    listOfVal: [ 
        val1, 
        val2, 
        val3 
    ],
    name: 'app',
    id: '9209629'
    ...
}

然后你可以像访问其他对象一样访问listOfVal,并使用indexOf来访问val2。

data.listOfVal.indexOf(val2);

这将返回一个非负整数索引,其中val2位于数组中,或者它将返回-1,表明val2不存在于您的数组中。