如何搜索JSON对象以查找特定参数值?

时间:2016-06-30 13:40:51

标签: javascript angularjs json node.js

我有一些看起来像这样的JSON:

{
    "inactive_user": {
        "name": "A",
        "id": "1",
        "dob": "01011990",
    },
    "active_staff": {
        "id": "B",
        "dob": "2",
    },
    "active_student": {
        "name": "C",
        "pid": "3",
        "dob": "01011990",
    },
    "no_securityquestion": {
        "name": "D",
        "pid": "4",
        "dob": "01011990",
    }
}

我想要做的是,基于请求中提供的id,返回具有该id的用户(inactive_user,active_staff等)。

我该怎么做?我到目前为止所尝试的是:

    for (var parent in userObject){
        if(userObject.parent.pid === pid){
            console.log(userObject.parent);
            reply(userObject.parent);
        }
    }

但userObject.parent(其中userObject是整个JSON文件)只返回undefined,这很奇怪,因为parent将返回文件中父对象的每个名称(inactive_user和不是)

2 个答案:

答案 0 :(得分:2)

要引用对象中的动态键,必须使用括号表示法。

for (var parent in userObject){
    if(userObject[parent].pid === pid){
        console.log(userObject[parent]);
        reply(userObject[parent]);
    }
}

另外,我在您的数据中看到您有一些条目,其中ID不是pid,而只是id;我不知道您是否希望他们的处理方式与pid相同,但如果是这样的话,您应该相应地更新您的情况。

答案 1 :(得分:0)

试试这个,

for (var parent in userObject) {
    if (userObject[parent].pid === "3") {
       console.log(userObject[parent]);
      reply(userObject[parent]);
    }
}