如何通过jQuery/JavaScript访问这个JSON结构,而不使用for循环

how to access this JSON structure via jquery/javascript without using a for-loop?

本文关键字:循环 for 结构 JSON jQuery 何通过 JavaScript 访问      更新时间:2023-09-26

我有这个JSON结构,我试图访问它,但没有取得多大成功。

{
   "COURSEDETAILS": {
      "BTR": {
         "CDFULLTITLE": "Bachelor of Health Sciences",
       },
      "BYTR": {
         "CDFULLTITLE": "Bachelor of Nursing (Preregistration)",
      }
   },
   "STUDENT": [
      {
         "WSDCOURSECODE": "BTR",
         "WSDSTUDENTID": 123456,
      },
      {
         "WSDSTUDENTID": 123456,
         "WSDCOURSECODE": "BYTR",
      }
   ]
}

我可以轻松访问学生部分。但是不知道如何在每种情况下访问CDFULLTITLE。我不想使用 for 循环进行迭代。

BHS和BNGU为每个学生而变化。因此,ID 234456的学生可能有 WSDCOURSECODE = XXXX。

我可以通过数据访问学生部分的课程代码。学生[0]。WSDCOURSECODE。但是我不知道如何使用它来访问课程详细信息中的CDFULLTITLE。

也许问题出在我的结构上。请建议更好的方法?

有人可以帮忙吗?谢谢

听起来你在问如何在JavaScript对象中循环访问属性? 您可以使用 for - in并以这种方式访问属性。

var data = {
   "COURSEDETAILS": {
      "BTR": {
         "CDFULLTITLE": "Bachelor of Health Sciences",
       },
      "BYTR": {
         "CDFULLTITLE": "Bachelor of Nursing (Preregistration)",
      }
   },
   "STUDENT": [
      {
         "WSDCOURSECODE": "BTR",
         "WSDSTUDENTID": 123456,
      },
      {
         "WSDSTUDENTID": 123456,
         "WSDCOURSECODE": "BYTR",
      }
   ]
};
for (var item in data.COURSEDETAILS) {
  document.getElementById('result').innerHTML += data.COURSEDETAILS[item].CDFULLTITLE + "<br/>";
}
<div id="result" />

如果我理解正确,这就是您要查找的内容:

var json = {
"COURSEDETAILS": {
   "BTR": {
      "CDFULLTITLE": "Bachelor of Health Sciences",
   },
   "BYTR": {
      "CDFULLTITLE": "Bachelor of Nursing (Preregistration)",
   }
},
"STUDENT": [
   {
      "WSDCOURSECODE": "BTR",
      "WSDSTUDENTID": 123456,
   },
   {
      "WSDSTUDENTID": 123456,
      "WSDCOURSECODE": "BYTR",
   }
]
};
for (var i in json.STUDENT) {
  var student = json.STUDENT[i];
  var fulltitle = json.COURSEDETAILS[student.WSDCOURSECODE].CDFULLTITLE;
  //use the title or the student
  console.log(student, fulltitle);
}

这解决了我的问题。

data.COURSEDETAILS[data.STUDENT[0].WSDCOURSECODE].CDFULLTITLE

感谢那些花时间阅读/回复的人。 :)