在 EJS 中循环 JSON

kat*_*aty 1 html ejs node.js

我在下面的 EJS 中有代码,

<table>
<% for(var i=0; i < data.length; i++) { %>
<tr>
 <td><%= data[i].id %></td>
 <td><%= data[i].name %></td>
 </tr>
 <% } %>
</table>
Run Code Online (Sandbox Code Playgroud)

我的数据是这样的:

[{"id":1,"name":"bob",description:[{"name":"carol","url":"www.hp.com"},{"name":"katy","url":"www.desktop.com"}]},{"id":2,"name":"john"description:[{"name":"raya","url":"www.usus.com"},{"name":"fat","url":"www.mia.com"}]}]"
Run Code Online (Sandbox Code Playgroud)

我可以操纵该行来填充 JS => id 和 name 中的表,但我无法对描述执行此操作: name , url

这将输出下表(使用上面的示例数据):

<table>
 <tr>
<td>1</td>
<td>bob</td>
<td>name</td>
<td>url</td>
</tr>
<tr>
<td>2</td>
<td>john</td>
</tr>
<tr>
<td>3</td>
<td>jake</td>
<td>name</td>
<td>url</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

帮助赞赏。

问候

std*_*b-- 5

这是因为“描述”是一个数组。因此,您可以使用嵌套循环来访问其数据:

<table>
<% for(var i=0; i < data.length; i++) { %>
<tr>
 <td><%= data[i].id %></td>
 <td><%= data[i].name %></td>
 <td><% for(var j=0; j < data[i].description.length; j++) { %>
     <p><a href="<%=data[i].description[j].url%>"><%=data[i].description[j].name%></a></p>
 <% } %></td>
 </tr>
<% } %>
</table>
Run Code Online (Sandbox Code Playgroud)