Цикл JSON в EJS

У меня есть коды в EJS ниже,

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

Мои данные такие:

[{"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"}]}]"

Я могу манипулировать строкой, чтобы заполнить таблицу в JS => id и имя, но я не могу сделать это для описания: имя, 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>

Помощь оценена.

С уважением


person katy    schedule 17.07.2015    source источник


Ответы (1)


Это потому, что "описание" представляет собой массив. Таким образом, вы можете использовать вложенный цикл для доступа к его данным:

<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>
person stdob--    schedule 17.07.2015
comment
Хм.. Если вы хотите повторить description - значит, все было правильно. Но не беда, если проблема решена)) - person stdob--; 17.07.2015