javascript - NodeJS 中循环嵌套 Json 数据

标签 javascript json node.js ejs

在我的模拟数据中,我能够在大部分情况下循环访问一些数据。 当您接触到即将到来的学生时,您可以看到我嵌套了一些数据。 我遇到的问题是能够打印嵌套数据。

{
  "upcoming": [{
    "id": 1,
    "date": "Feb 2nd, 2018",
    "time": "2 to 4pm",
    "status":"$45",
    "course": "Oil Painting",
    "course_type": "(Individual)",
    "student":[
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      }
    ]
  },{
    "id": 2,
    "date": "Feb 2nd, 2018",
    "time": "2 to 4pm",
    "status":"$45",
    "course": "Oil Painting",
    "course_type": "(Group)",
    "student":[
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      },
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      },
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      }
    ]
  },{
    "id": 2,
    "date": "Feb 2nd, 2018",
    "time": "2 to 4pm",
    "status":"$45",
    "course": "Oil Painting",
    "course_type": "(Group)",
    "student":[
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      },
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      },
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      }
    ]
  }],
  "future":[{
    "id": 1,
    "date": "Feb 2nd, 2018",
    "time": "2 to 4pm",
    "status":"$45",
    "course": "Oil Painting",
    "course_type": "(Group)",
    "student":[
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      },
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      },
      {
        "name": "Ann Perkins",
        "image": "/img/student-icon.png"
      }
    ]
  }]
}

我能够将日期、状态和类(class)打印到我的 ejs 模板中,但是当我尝试显示学生图像时,出现错误,提示其未定义。

<% data.upcoming.forEach((record) => { %>
    <tr>
      <td><%=record.date%>
          <span style="display: block;font-size:10pt;">3 to 4pm</span>
      </td>
      <td>Recieved
        <span style="display:block; font-size: 16pt; color:#7c0000;"><%=record.status%></span>
      </td>
      <td><%=record.course%>
        <span style="display:block;font-size:10pt;"><%=record.course_type%></span>
      </td>
      <td>
        LOOK HERE
        <% data.upcoming.student.forEach((person) => { %>
          <img rel="tooltip" data-placement="top" title="Ann Perkins" src="<%=person.image%>">
        <% }) %>
      </td>
    <% }) %>

我是否使用正确的方法来获取学生中的对象数组?

最佳答案

您需要将 data.upcoming.student.forEach((person) => { 替换为 record.student.forEach(...)

学生数组位于您在 ejs 模板第一行上面循环的数组内

关于javascript - NodeJS 中循环嵌套 Json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49679482/

相关文章:

node.js - Express 中的 app.set 和 app.engine

javascript - 子div在css中影响父div并触发jquery方法

javascript - AngularJS 指令通过 templateUrl 函数传递参数

javascript - Kendo UI 网格单元 trim 数据值

javascript - RadioButtonFor 加载页面后不调用 onchange

javascript - 通过匹配 ID 检查 json 数组中是否已存在项目

javascript - ajax 返回空字符串而不是 json [python cgi]

javascript - 使用javascript显示部分JSON数据

javascript - 在 VueJS 中用相同的组件包装三个特定的路由

javascript - 在大文件的 http 传输中间歇性获取 TCP._onclose