EJS 解析 JSON 对象中的 JSON 数组

EJS Parsing JSON Array within JSON Object

请帮助我,我正在尝试解析来自 mongodb 的 json 数据。 我需要访问内部 json 对象 activities-heartheartRateZones 到 html table.

Json数据

{
   "_id":{ },
   "refreshToken":"dba7449db19d20ce77f5a247ef2d9ac06e3387464c011b0424db1064bcfce503",
   "profile":{
      "provider":"fitbit",
      "_json":{
         "activities-heart":[
            {
               "customHeartRateZones":[ ],
               "dateTime":"today",
               "heartRateZones":[
                  {
                     "caloriesOut":2.80434,
                     "max":84,
                     "min":30,
                     "minutes":2,
                     "name":"Out of Range"
                  },
                  {
                     "caloriesOut":0,
                     "max":118,
                     "min":84,
                     "minutes":0,
                     "name":"Fat Burn"
                  },
                  {
                     "caloriesOut":0,
                     "max":143,
                     "min":118,
                     "minutes":0,
                     "name":"Cardio"
                  },
                  {
                     "caloriesOut":0,
                     "max":220,
                     "min":143,
                     "minutes":0,
                     "name":"Peak"
                  }
               ],
               "value":"61.86"
            }
         ],

javaScript 用于解析 json 对象

<% for(var i=0; i<quotes.length; i++) {%>
    <li class="quotes">
      <span><%= quotes[i].profile._json.activities-heart %></span>

    </li>

我是ejs的初学者。 我收到 "heart is not defined" 错误。

JS 将 activities-heart 视为 activities minus heart,因此显示 heart is not defined 因为它没有看到任何 heart 变量(不用担心,您的 body 一切正常)。试试这个:

<span><%=
    var datetime = quotes[i].profile._json['activities-heart'].dateTime;
    var cardioZone = quotes[i].profile._json['activities-heart'].heartRateZones[2];
    var cardioMinHR = cardioZone.min;
%></span>