Добрый день! Для отображения данных в формате JSON в HTML-таблице с использованием JavaScript и `fetch` вы можете выполнить следующие шаги. Предположим, что ваши данные выглядят примерно так:
```json
[
{ "id": 1, "name": "John Doe", "age": 30 },
{ "id": 2, "name": "Jane Smith", "age": 25 },
{ "id": 3, "name": "Alice Johnson", "age": 28 }
]
```
Вот пример кода, который демонстрирует, как вы можете это реализовать:
```html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Таблица из JSON</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<h2>Данные из базы данных</h2>
<table id="data-table">
<thead>
<tr>
<th>ID</th>
<th>Имя</th>
<th>Возраст</th>
</tr>
</thead>
<tbody>
<!-- Данные будут добавлены сюда с помощью JavaScript -->
</tbody>
</table>
<script>
async function fetchData() {
try {
const response = await fetch('URL_ВАШЕГО_API'); // Замените на ваш URL
if (!response.ok) {
throw new Error('Сеть не в порядке. Ошибка: ' + response.status);
}
const data = await response.json();
populateTable(data);
} catch (error) {
console.error('Ошибка при получении данных:', error);
}
}
function populateTable(data) {
const tableBody = document.querySelector('#data-table tbody');
// Очистим предыдущие данные в таблице
tableBody.innerHTML = '';
data.forEach(item => {
const row = document.createElement('tr');
row.innerHTML = `
<td>${item.id}</td>
<td>${item.name}</td>
<td>${item.age}</td>
`;
tableBody.appendChild(row);
});
}
// Запустим функцию fetchData при загрузке страницы
window.onload = fetchData;
</script>
</body>
</html>
```
### Объяснение кода:
1. **HTML-структура**: Мы создали HTML-таблицу с заголовками для ID, имени и возраста.
2. **CSS**: Добавлены стили для таблицы, чтобы сделать её более читабельной.
3. **JavaScript**:
- `fetchData()` — асинхронная функция, которая выполняет `fetch` запрос к вашему API. Она обрабатывает возможные ошибки и вызывает функцию `populateTable` с полученными данными.
- `populateTable(data)` — эта функция принимает массив объектов, создаёт строки таблицы и заполняет их данными. Каждая строка добавляется в тело таблицы.
4. **Запуск**: Функция `fetchData` вызывается при загрузке страницы с помощью `window.onload`.
Вы можете заменить `URL_ВАШЕГО_API` на фактический URL вашего API, и скрипт должен корректно отобразить полученные данные в таблице.