获取json数据的行号

时间:2015-11-02 19:23:52

标签: javascript json parsing

我有一个ajax请求,它以json格式返回数据,如

{
    "response_code": 1,
    "response_data": {
        "ext": [
            {
                "client_id":"1003",
                "company_name":"Reachmediagg"
            },
            {
                "client_id":"1004",
                "company_name":"RaSpecial"
            }
        ],
        "row_count":2
    },
    "response_error":""
}

正如你可以看到数据在json对象里面的ext数组内,现在我必须获取数据的行号,所以我想要例如client_id 1004的行号,即2.我将如何做到这一点在javascript?

2 个答案:

答案 0 :(得分:1)

您必须遍历JSON中的ext数组并找到包含正确client_id的元素。下面描述的功能就是这样。

function get_row_number(data, client_id) {
    var ext = data.ext;

    // Loop through all the clients and try to find the one with the given client_id
    for (var i = 0; i < ext.length; i++) {
        if (ext[i].client_id == client_id)
            return i;
    }

    // Return -1 if the client_id could not be found
    return -1;
}

答案 1 :(得分:0)

技术上数据没有行号。只有你的方式才能推断/分配行号。

请注意ext是一个数组。您可以遍历该数组,直到找到所需的记录并保留计数器。例如:

var counter = 0;
for (;counter <= response_data.ext.length; counter++) {
    if (response_data.ext[counter].client_id == 1004) {
        break;
    }
}
// here "counter" is the "row number" where client_id == 1004

您还可以将其提取到目标client_id是参数的函数中(或条件本身是一个参数,允许您查找的不仅仅是client_id)。