如何searchJSON对象以查找特定的参数值?

我有一些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文件)只是返回未定义,这是奇怪的,因为父将返回文件中的父对象的每个名称(inactive_user和什么不)

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

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

另外,我在您的数据中看到,您有一些条目,其中id不是pid而是id ; 我不知道你是否希望他们像pid一样对待,但是如果是这样,你应该相应地更新你的状态。

尝试这个,

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