繁体   English   中英

遍历Javascript中的JSON数组元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM