javascript - 如何搜索 JSON 对象来查找特定的参数值?

标签 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 等)

最佳答案

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

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

另外,我在您的数据中看到,您有一些条目的 id 不是 pid 而只是 id;我不知道您是否希望它们以与 pid 相同的方式对待,但如果是这样,您应该相应地更新您的条件。

关于javascript - 如何搜索 JSON 对象来查找特定的参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38124873/

相关文章:

javascript - 如何隐藏 Angular-Chart.js 的边框 - Chart-pie

javascript - 无法识别 JS 服务器,继续构建

c# - JsonDiffpatch().Diff() 无法比较电子邮件地址和长度超过 50 个字符的字符串?

JSON 模式 - 如何使用 oneOf

php - 为什么我的复选框没有选中?

javascript - 使用 Ajax 发送 Javascript 对象时未定义的数据

javascript - Css 模态框 z 索引不起作用

angularjs - 如何使用回调重构链式 $http 调用和库调用

javascript - 使用 firebase 的即时模式自动登录

angularjs - 如何使angularjs网站加载速度更快