JSON в HTML
Бесплатный онлайн-инструмент для преобразования JSON-массивов и вложенных объектов в стандартный HTML-код таблицы для встраивания в веб-страницы. Поддержка вложенного сплющивания, пользовательских CSS-классов, горизонтальной прокрутки, 6 визуальных стилей, null-плейсхолдеров, защиты лимита строк. Двойные вкладки Code и iframe для предпросмотра в реальном времени.
Похожие
О JSON в HTML и HTML-таблицах
Конвертер JSON в HTML — это практический инструмент, который автоматически преобразует структуры данных JSON в стандартный HTML-код таблицы. Он освобождает разработчиков от повторяющейся работы по ручному написанию шаблонов `<table>` / `<tr>` / `<td>`, идеально подходит для быстрого отображения вложенных ответов API, конфигурационных файлов или любых JSON-структур в виде веб-таблиц.
HTML-таблица — это стандартный структурированный элемент отображения данных W3C, состоящий из контейнера `<table>`, заголовка `<thead>`, тела `<tbody>`, строк `<tr>`, ячеек заголовка `<th>`, ячеек данных `<td>`, заголовка таблицы `<caption>` и других семантических тегов. Код, генерируемый этим инструментом, строго следует этой семантической структуре, что удобно для SEO-сканирования и доступности (читается скринридерами).
На рынке есть три категории инструментов JSON в HTML: первая генерирует только HTML-строки (например, tooltt.com, codebeautify.org), подчёркивая «скопируй и используй»; вторая также предоставляет визуальный предпросмотр (например, этот инструмент, jsontables.com, TableConvert), подчёркивая «WYSIWYG»; третья поддерживает развёртывание вложенности + внедрение Tailwind-классов (дифференциатор этого инструмента), подходит для инженеров, которым нужно встраивать JSON в современные фронтенд-проекты.
«Сплющивание вложенности» этого инструмента — это дифференцированное преимущество перед большинством конкурентов: традиционные инструменты отобразят `{user:{name:'Alice'}}` как строку `"{\"name\":\"Alice\"}"`, тогда как этот инструмент рекурсивно разворачивает её в столбец `user.name` (до 6 уровней, настраиваемый разделитель). Это означает, что вы можете напрямую обрабатывать реальные бизнес-данные со сложной вложенной структурой, такие как GitHub API, Stripe API, Notion API, без предварительного сплющивания через jq / lodash.
Ещё одно дифференцированное преимущество — «пользовательский CSS-класс хук»: инструмент не только генерирует встроенные стили, но и позволяет внедрять любую строку класса в тег `<table>`. Это позволяет пользователям основных CSS-фреймворков, таких как Tailwind / Bootstrap / Bulma / DaisyUI, напрямую переиспользовать сгенерированный HTML и сразу получать согласованный с проектом стиль дизайна, без ручного редактирования CSS.
Варианты использования
- Фронтенд-разработка: быстрый рендеринг JSON-данных из API в HTML-таблицу для встраивания в админ-панели или документацию
- Проекты на Tailwind / Bootstrap: введите классы Tailwind или Bootstrap прямо в поле класса таблицы для бесшовной интеграции с существующей системой стилей
- Адаптивные веб-страницы: адаптивная обёртка с горизонтальной прокруткой по умолчанию предотвращает поломку вёрстки на мобильных
- Визуализация данных: вставка стилизованных таблиц в блоги, документацию, Confluence, Notion и любые платформы, поддерживающие HTML
- Генерация отчётов: быстрое преобразование JSON-данных из бэкенда в HTML-отчёты для email-рассылки бизнес-заказчикам
- Прототипирование фронтенда: предпросмотр стиля таблиц с реальными данными на этапе дизайна для согласования с продуктом и дизайнерами
- CMS-системы: создание статических HTML-сниппетов таблиц для WordPress, Drupal и других CMS, избегая сложности шаблонизаторов
- Тестирование и отладка: вставьте вывод JSON.stringify из консоли браузера, чтобы быстро просмотреть двумерную структуру сложных вложенных данных
- Email-шаблоны: встраивание HTML-таблицы в HTML-письма (проверьте совместимость с Outlook)
- Документация API: встраивание HTML-таблиц в Markdown, Swagger, Redoc вместо JSON-примеров
- Учебные сценарии: преобразование вложенных JSON-заданий по структурам данных в таблицы для пакетной проверки
- Отчёты очистки данных: преобразование вложенного JSON из дампов БД в таблицы через режим сплющивания для удобного сравнения полей
Как использовать
- Вставьте JSON-массив (рекомендуется) или один объект в левый редактор, либо нажмите «Sample» для загрузки 3 примеров товаров, либо «Upload» для загрузки .json / .txt файла
- Выберите режим обработки вложенности на панели инструментов (рекомендуется «Сплющивание»). Вложенные объекты автоматически развернутся в точечные ключи типа `user.name`
- Нажмите кнопку «Convert» (или просто Enter) для запуска преобразования. Ввод защищён 500 мс дебаунсом
- На вкладке Code справа просмотрите HTML-код таблицы с подсветкой, на вкладке Preview — рендеринг iframe в реальном времени
- Отметьте стили на панели инструментов (зебра / границы / подсветка / компакт / адаптивность), введите свой класс таблицы, задайте null-плейсхолдер — предпросмотр обновляется мгновенно
- Когда готово, нажмите «Copy» для копирования HTML-кода или «Download» для скачивания как table.html. Для сброса нажмите Reset
Функции
- Авто-сплющивание вложенных объектов: рекурсивно разворачивает `{user:{name,age}}` в ключи `user.name`, `user.age` (настраиваемый разделитель), без скриптов
- Три режима обработки вложенности: Сплющивание (рекомендуется, до 6 уровней) / Ключи верхнего уровня (вложенный объект одной колонкой) / Строка (вложенный объект как JSON-строка)
- Пользовательский CSS-класс хук: внедряет любую строку класса в `<table>` и внешний `<div>`, бесшовная интеграция с Tailwind / Bootstrap / Bulma
- Адаптивная горизонтальная прокрутка: внешний контейнер `overflow-x:auto` по умолчанию, горизонтальная прокрутка на узких экранах без поломки вёрстки
- 6 визуальных переключателей: зебра, границы, подсветка строк, компактный режим, индексный столбец (#), заголовок таблицы — мгновенное применение
- Двойные вкладки Code + iframe: Code показывает HTML с подсветкой, Preview рендерит реальную таблицу в защищённом iframe в реальном времени
- Подсветка по типу: null — серый курсив (настраиваемый плейсхолдер), булевы — зелёный/красный, числа — синий, вложенные объекты — полный JSON по наведению
- Защита лимита строк: по умолчанию 1000 строк (1-10000), авто-усечение с уведомлением «Усечено» для предотвращения тормозов браузера
- Статистика генерации: правая панель показывает «X строк × Y столбцов» + значок усечения в реальном времени
- Копирование / скачивание в один клик: в режиме Code — копирование HTML в буфер или скачивание как table.html
- Образцы данных + загрузка файлов: 3 встроенных примера товаров (Laptop / Mouse / Desk Chair) в один клик, drag-and-drop .json / .txt файлов
- Сброс в один клик: кнопка Reset на панели инструментов мгновенно восстанавливает все 14 настроек по умолчанию
- Локальная история: localStorage хранит последние 200 вводов, восстанавливается после обновления или случайного закрытия
- Полностью локальная работа браузера: весь парсинг JSON, генерация HTML, копирование и скачивание — в браузере, без передачи на сервер
Примеры кода
JavaScript: сплющивание вложенности + интеграция Tailwind-классов
javascriptСамый распространённый вариант использования: вызов GitHub API, сплющивание вложенных объектов в точечные ключи и интеграция с Tailwind-классами в проекте.
// 1) Вызов GitHub API для получения списка пользователей
async function fetchUsers() {
const res = await fetch('https://api.github.com/users?per_page=10');
return await res.json();
}
// 2) Функция сплющивания (эквивалентна логике инструмента)
function flattenObject(obj, prefix = '', sep = '.', result = {}) {
for (const [k, v] of Object.entries(obj || {})) {
const key = prefix ? `${prefix}${sep}${k}` : k;
if (v && typeof v === 'object' && !Array.isArray(v)) {
flattenObject(v, key, sep, result);
} else {
result[key] = v;
}
}
return result;
}
// 3) Преобразование сплющенных данных в HTML-таблицу с внедрением Tailwind-классов
function generateHtmlTable(rows) {
const flat = rows.map(r => flattenObject(r));
const cols = [...new Set(flat.flatMap(r => Object.keys(r)))];
const thead = cols.map(c => `<th class="px-4 py-2 text-left">${c}</th>`).join('');
const tbody = flat.map(r =>
`<tr class="border-b hover:bg-gray-50">${cols.map(c => `<td class="px-4 py-2">${r[c] ?? 'N/A'}</td>`).join('')}</tr>`
).join('');
return `<table class="min-w-full text-sm">
<thead class="bg-gray-100"><tr>${thead}</tr></thead>
<tbody>${tbody}</tbody>
</table>`;
}
// 4) Внедрение в страницу
const users = await fetchUsers();
const html = generateHtmlTable(users);
document.getElementById('table-container').innerHTML = html;
console.log('Сгенерировано ' + users.length + ' строк, ' + (Object.keys(flattenObject(users[0])).length) + ' столбцов');Python: вложенный JSON в HTML-таблицу во Flask (без зависимостей фронтенда)
pythonПри рендеринге бэкенд-шаблонов можно использовать встроенные библиотеки Python для генерации той же HTML-таблицы, поддерживая сплющивание и внедрение классов.
from flask import Flask, jsonify, render_template_string
import json
app = Flask(__name__)
TEMPLATE = """
<!doctype html><html><body>
<div class="overflow-x-auto">{{ table_html | safe }}</div>
</body></html>
"""
def flatten(obj, prefix='', sep='.', result=None):
"""Рекурсивное сплющивание вложенных объектов"""
if result is None:
result = {}
for k, v in (obj or {}).items():
key = f"{prefix}{sep}{k}" if prefix else k
if isinstance(v, dict):
flatten(v, key, sep, result)
else:
result[key] = v
return result
def json_to_html_table(data, table_class='min-w-full border-collapse',
max_rows=1000, responsive=True):
if isinstance(data, dict):
data = [data]
if not data:
return "<p>Нет данных</p>"
# Усечение строк
truncated = False
if len(data) > max_rows:
data = data[:max_rows]
truncated = True
# Сплющивание каждой строки
flat_rows = [flatten(row) for row in data]
# Сбор всех имён столбцов (set для дедупликации, сохраняя порядок вставки)
columns = []
for row in flat_rows:
for k in row.keys():
if k not in columns:
columns.append(k)
# Генерация thead
thead = "".join(f'<th class="px-4 py-2 text-left bg-gray-100">{c}</th>' for c in columns)
# Генерация строк таблицы
rows = []
for i, row in enumerate(flat_rows):
bg = "bg-gray-50" if i % 2 == 1 else ""
tds = "".join(
f'<td class="px-4 py-2 {bg}">{("N/A" if row.get(c) is None else row.get(c, ""))}</td>'
for c in columns
)
rows.append(f'<tr class="hover:bg-blue-50">{tds}</tr>')
html = f'<table class="{table_class}"><thead><tr>{thead}</tr></thead><tbody>{"".join(rows)}</tbody></table>'
if responsive:
html = f'<div class="overflow-x-auto">{html}</div>'
if truncated:
html = f'<p class="text-amber-600 text-sm">Данные усечены до первых {max_rows} строк</p>{html}'
return html
@app.route('/api/users')
def users():
data = json.load(open('users.json'))
return jsonify(data)
@app.route('/users.html')
def users_html():
import requests
data = requests.get('http://localhost:5000/api/users').json()
return render_template_string(TEMPLATE, table_html=json_to_html_table(data))
if __name__ == '__main__':
app.run(debug=True)Командная строка: сплющивание через jq + генерация статического HTML-отчёта
bashОперационный сценарий: агрегация вложенных JSON-логов через jq, затем вставка в этот инструмент для генерации HTML-отчёта с Tailwind-классами.
# 1) Агрегация и сплющивание вложенных логов в точечные ключи через jq
cat app.log | jq -s '
group_by(.response.status_code) |
map({
status: .[0].response.status_code,
count: length,
"first_request.method": .[0].request.method,
"last_request.url": .[-1].request.url,
"first_seen": min_by(.timestamp).timestamp,
"last_seen": max_by(.timestamp).timestamp
})
' > stats.json
# 2) Вставьте stats.json в инструмент
# Выберите режим «Сплющивание (рекомендуется)» в панели
# Отметьте «Зебра + Адаптивная обёртка + Границы»
# В поле имени класса таблицы: min-w-full text-sm border-collapse
# Null-плейсхолдер: - (отсутствующие поля отображаются как -)
# Заголовок: 2026-07 Статистика ошибок продакшена
# Нажмите Convert и скачайте table.html
# 3) Загрузка на S3 / OSS-статический сайт
aws s3 cp table.html s3://my-bucket/reports/2026-07.html --acl public-read
# Или встраивание в Confluence / Notion / VuePress-документацию
sed -i '' 's/min-w-full/min-w-full shadow-md/g' table.html
# Или отправка как HTML-письмо
mutt -e "set content_type=text/html" -s "Лог ошибок 2026-07" your@email.com < table.htmlЧасто задаваемые вопросы
Как преобразовать JSON в HTML-таблицу?
Вставьте JSON-массив (каждый элемент — объект) в левое поле ввода, нажмите кнопку «Convert» на панели инструментов. На вкладке Code справа появится HTML-код таблицы с подсветкой, на вкладке Preview — рендеринг в iframe в реальном времени. Нажмите «Copy», чтобы вставить в любую HTML-страницу.
Можно ли преобразовать вложенные JSON-объекты в HTML-таблицу?
Да. Инструмент имеет встроенный режим сплющивания, который рекурсивно разворачивает `{user:{name:'Alice',age:30}}` в столбцы `user.name` и `user.age` на глубину до 6 уровней. Также можно переключиться на режим «Ключи верхнего уровня» (вложенный объект как JSON-строка в одном столбце) или «Строка» (всё как строка).
Можно ли изменить разделитель ключей при сплющивании?
По умолчанию используется `.` (даёт `user.name`), что соответствует соглашениям JavaScript / MongoDB / Lodash. Если нужен `user_name` или `user/name`, укажите свой разделитель в поле «Разделитель» (для продвинутых пользователей).
Можно ли настроить стиль сгенерированной HTML-таблицы?
Доступны три способа: ① 6 визуальных переключателей на панели инструментов (зебра, границы, подсветка, компакт, индекс, заголовок) применяются мгновенно; ② введите свой класс в поле «имя класса таблицы» (например, Tailwind `min-w-full border-collapse`) — он будет внедрён в `<table class="...">`; ③ отредактируйте сгенерированный HTML вручную.
Поддерживается ли Tailwind / Bootstrap?
Да. Введите классы Tailwind (например, `min-w-full border-collapse text-sm`) или Bootstrap (например, `table table-striped table-hover table-bordered`) в поле «имя класса таблицы» — инструмент внедрит их в тег `<table>`. Примечание: встроенные стили инструмента имеют наивысший приоритет и переопределят некоторые стили Tailwind (фон, отступы). Рекомендуем отключить соответствующую опцию (например, зебру) перед использованием Tailwind.
В чём разница между вкладками Code и Preview?
Вкладка Code отображает HTML-код с подсветкой синтаксиса, удобно для копирования и редактирования. Вкладка Preview рендерит реальную таблицу в защищённом iframe с эффектом WYSIWYG. Содержимое идентично — можно быстро переключаться между «смотреть код» и «смотреть результат».
Поддерживает ли сгенерированный HTML мобильную адаптивность?
Да. По умолчанию включена опция «Адаптивная обёртка», которая оборачивает `<table>` в контейнер `<div style="overflow-x:auto;max-width:100%;">`. Когда ширина экрана меньше ширины таблицы, в контейнере автоматически появляется горизонтальная прокрутка, не ломая вёрстку. Эту опцию можно отключить на панели инструментов.
Как отображаются null, булевы значения и числа в ячейках?
Инструмент применяет подсветку по типу: null — серый курсив (плейсхолдер настраивается в панели: `N/A`, `-` и т. д.), булево true — зелёный, false — красный, числа — синий, обычные строки — как есть. Вложенные объекты в режиме сплющивания извлекаются по пути, в других режимах преобразуются в JSON-строку и обрезаются до 50 символов.
Можно ли использовать сгенерированный HTML-код прямо на сайте?
Да. Вывод — это стандартная W3C HTML5 структура таблицы (`<table>` / `<thead>` / `<tbody>` / `<caption>`), CSS выводится в виде встроенного style. Можно вставлять в любую HTML-страницу без зависимости от внешних CSS или JS. Также можно скачать как table.html.
В чём разница между JSON в HTML и JSON в CSV?
HTML-таблица — это стилизованный визуальный формат, идеально подходит для встраивания в веб-страницы. CSV — это plain-text формат данных, идеально подходит для импорта в Excel / Pandas / базы данных. Оба генерируются из одних и тех же данных JSON. Рекомендуем сначала просмотреть вёрстку в этом инструменте, а затем использовать конвертер JSON в CSV для экспорта данных.
Как изменить текст заголовков таблицы?
Инструмент автоматически использует ключи первого уровня JSON-объекта в качестве содержимого `<th>` (в режиме сплющивания — полный точечный путь, например `user.name`). Чтобы заголовки отображали другой текст, есть три способа: ① измените имена ключей в исходном JSON; ② после генерации вручную отредактируйте содержимое `<th>...</th>` на вкладке Code; ③ используйте sed для пакетной замены.
Скачанный table.html пустой при открытии в браузере. Что делать?
Скачанный table.html содержит только структуру тега `<table>` (возможно с обёрткой `<div>`), без полного HTML-каркаса (`<html>` / `<head>` / `<body>`). Он спроектирован как сниппет для встраивания. Можно вручную добавить каркас с помощью инструмента форматирования HTML или вставить в нужное место вашего проекта.
Страница тормозит при генерации 1000+ строк. Что делать?
По умолчанию установлен лимит 1000 строк, при превышении отображается «Усечено». Если действительно нужно 5000 строк, поднимите «Максимум строк» в панели до 10000, но рекомендуем: ① разбить на страницы (50 строк на страницу); ② использовать IntersectionObserver для виртуальной прокрутки; ③ использовать специализированные библиотеки типа TanStack Table / AG Grid.
Данные загружаются на сервер? Насколько это безопасно?
Всё работает локально в вашем браузере. Весь парсинг JSON, генерация HTML, копирование и скачивание происходят в браузере через JavaScript, а чтение файлов — только через локальный FileReader. Ничего не отправляется ни на какой сервер. Можно безопасно работать с конфиденциальными API-ответами и внутренними полями — при закрытии страницы все данные удаляются.
Устранение неполадок
Уведомление: «Введите данные JSON» или подобная ошибка
Левое поле ввода пусто или содержит только пробелы. Убедитесь, что вы вставили валидный JSON, или нажмите «Sample» для загрузки образца, или «Upload» для выбора .json / .txt файла.
Уведомление: «Unexpected token ... in JSON at position N»
Невалидный формат JSON. Распространённые причины: ① лишняя запятая в конце (например, [{},{},]); ② одинарные кавычки вместо двойных; ③ синтаксис JS-объекта (например, {key: value}) вместо JSON ({"key": "value"}). Используйте инструмент форматирования JSON для проверки и исправления.
Сгенерированная таблица содержит только заголовок, без строк данных
Данные JSON — пустой массив [] или пустой объект {}. Инструмент возвращает комментарий `<!-- No valid objects found -->` для пустого массива. Добавьте хотя бы один объект в исходный JSON.
Имена столбцов слишком длинные в режиме сплющивания (например, user.profile.address.city.country.code)
При слишком глубокой вложенности рекомендуем: ① переключиться на режим «Ключи верхнего уровня» (только верхние поля, вложенные объекты как JSON-столбец); ② изменить структуру исходного JSON для уменьшения вложенности; ③ использовать кнопку Reset для восстановления настроек сплющивания по умолчанию.
Внедрение Tailwind-классов не даёт эффекта
По умолчанию инструмент выводит встроенные стили (отступы, фон), которые переопределяют одноимённые утилитарные классы Tailwind. Рекомендации: ① отключите соответствующую опцию панели (например, зебру) перед использованием Tailwind; ② или используйте PostCSS для удаления встроенных style-атрибутов.
Высота таблицы сжата внутри адаптивной обёртки
«Адаптивная обёртка» по умолчанию делает высоту внешнего div равной высоте таблицы. Если родительский контейнер — flex без указанной высоты, дочерняя таблица может быть сжата. Добавьте min-h-0 к родительскому контейнеру или задайте высоту таблицы.
Скачанный table.html пустой при открытии в браузере
Скачанный файл содержит только сниппет <table> (с возможной обёрткой <div>), без полного HTML-каркаса (<!doctype html> / <html> / <head> / <body>). Он спроектирован для лёгкого встраивания. Используйте инструмент форматирования HTML для добавления каркаса или вставьте в нужное место проекта.
Кириллические заголовки таблицы отображаются как крякозябры
Ключи в исходном JSON содержат кириллицу — убедитесь, что исходный файл в кодировке UTF-8. Если JSON скопирован из Excel, он может быть в GBK; используйте конвертер кодировок, чтобы перевести в UTF-8 перед вставкой.
Хочу пакетно изменить сгенерированную таблицу (например, заменить лого / цвет)
После генерации скопируйте HTML с вкладки Code и используйте sed / PostCSS / собственный скрипт для пакетной замены атрибутов стиля. Типичная команда: sed -i '' 's/#f9fafb/#your-color/g' table.html.
Страница тормозит при генерации 1000+ строк
По умолчанию установлен лимит 1000 строк. Можно поднять maxRows до 10000, но браузеры заметно теряют производительность на огромных DOM (>1000 узлов). Рекомендуем: ① разбить на страницы (50 строк на страницу); ② использовать IntersectionObserver для виртуальной прокрутки; ③ использовать специализированные библиотеки типа TanStack Table / AG Grid.
История потеряна
История хранится в localStorage браузера. Очистка данных браузера / переключение в режим инкогнито / использование другого браузера приведут к потере истории. Инструмент не загружает историю ни на какой сервер, поэтому синхронизация между устройствами невозможна.
Не вижу исходные данные после лимита строк
По умолчанию maxRows=1000, при превышении строки усекаются. Если в исходных данных > 1000 строк, но нужно просмотреть только первые N, установите maxRows меньше (например, 100) для более быстрого результата. Для полных данных рекомендуем обрабатывать скриптами на Python / Node.js.
Глоссарий
- HTML-таблица (HTML Table)
- Стандартный элемент отображения структурированных данных W3C, состоящий из семантических тегов table / thead / tbody / tr / th / td / caption. Код, генерируемый этим инструментом, строго следует этой структуре.
- JSON-массив
- Коллекция объектов в квадратных скобках [...]. Инструмент использует каждый объект массива как строку таблицы; пустой массив не генерирует таблицу (отображается уведомление).
- JSON-объект
- Коллекция пар ключ-значение в фигурных скобках {}. Инструмент использует каждый ключ объекта как заголовок таблицы, а значение — как ячейку; один объект автоматически оборачивается как однострочная таблица.
- Сплющивание (Flatten)
- Рекурсивное разворачивание вложенных объектов в плоские точечные ключи, например {user:{name:'A'}} → 'user.name'. Инструмент поддерживает авто-сплющивание до 6 уровней с настраиваемым разделителем.
- thead / tbody
- Два семантических раздела HTML-таблицы: thead оборачивает строку заголовка (th), tbody оборачивает строки данных (td). Код, генерируемый инструментом, строго разделяет эти две части.
- Caption
- Тег заголовка таблицы, расположенный в первой строке внутри таблицы. Инструмент поддерживает настраиваемый текст заголовка; при включении указанный заголовок отображается над таблицей, что полезно для SEO и доступности.
- Зебра (Zebra Striping)
- Визуальный паттерн, при котором нечётные и чётные строки чередуются с разными цветами фона, обычно #fff / #f9fafb. Инструмент включает его через чекбокс «Зебра», значительно улучшая читаемость длинных таблиц.
- Встроенный стиль (Inline Style)
- CSS, записанный напрямую через атрибут style HTML-тега, а не через ссылку на внешнюю таблицу стилей. Инструмент по умолчанию выводит все стили как встроенный style, поэтому код можно использовать как есть, без дополнительных CSS-файлов.
- CSS-класс хук
- Дифференцированная возможность инструмента: внедрение любой строки класса (например, Tailwind-класса) в тег `<table>` для бесшовной интеграции с существующими CSS-фреймворками. Это ключевое преимущество перед конкурентами.
- iframe sandbox
- Безопасный режим песочницы HTML-тега iframe, который может ограничивать выполнение скриптов и отправку форм. Инструмент использует iframe с sandbox="allow-same-origin" для предпросмотра сгенерированного HTML, предотвращая случайное выполнение скриптов.
- Подсветка по типу
- Дифференцированная возможность инструмента: применение разных цветов в зависимости от JS-типа значения ячейки (null / boolean / number / object / string), делая отладку API-данных более интуитивной.
- localStorage история
- Локальное хранилище ключ-значение, предоставляемое браузером (объём ~5-10 МБ). Инструмент использует localStorage для постоянного сохранения последних 200 вводов, которые можно быстро восстановить после обновления или случайного закрытия.
- Адаптивная обёртка (Responsive Wrapper)
- Оборачивание таблицы во внешний `<div style="overflow-x:auto;max-width:100%;">`, чтобы на узких экранах автоматически появлялась горизонтальная прокрутка. Включено по умолчанию, можно отключить на панели инструментов.
- Дебаунс (Debounce)
- Техника оптимизации фронтенд-производительности: объединение высокочастотных колбэков событий (например, ввода) в одно выполнение после последнего срабатывания. Инструмент устанавливает 500 мс дебаунс, чтобы избежать задержек при парсинге больших файлов.
- W3C HTML5
- Стандартная спецификация HTML, разработанная World Wide Web Consortium (W3C). Код, генерируемый инструментом, соответствует спецификации HTML5 и корректно рендерится во всех современных браузерах.
Сравнение трёх режимов обработки вложенности
Панель инструментов предоставляет три режима для разных сценариев вложенности. Выбирайте исходя из сложности структуры JSON:
| Режим | Поведение | Образец столбца | Сценарий |
|---|---|---|---|
Сплющивание (рекомендуется) | Рекурсивно разворачивает вложенные объекты в точечные ключи (глубина ≤ 6) | user.name / user.tags.0 | Реальные API со сложной вложенностью (GitHub / Stripe / Notion); нужно каждое поле в отдельном столбце |
Ключи верхнего уровня | Берутся только ключи первого уровня; вложенные объекты / массивы становятся JSON-строкой в одном столбце | user / tags | Нестабильная или слишком глубокая (>6 уровней) вложенность; нужно только общее представление верхнего уровня |
Строка | Все значения принудительно как строки; вложенные объекты JSON.stringify напрямую | user (как JSON-блоб) | Отладка: сохранить оригинальную JSON-структуру для визуального осмотра |
Шпаргалка по 14 опциям панели инструментов
Все 14 настраиваемых опций панели инструментов и их визуальные различия для быстрого выбора комбинации:
| Опция | Тип | Визуальный эффект / поведение |
|---|---|---|
includeIndex | checkbox | Добавляет нумерованный столбец # слева (начиная с 1) |
striped | checkbox | Чередование фона нечётных/чётных строк (белый / #f9fafb) |
bordered | checkbox | Серая рамка 1px вокруг ячеек + акцентная линия 2px под заголовком |
hover | checkbox | Светло-серый фон #f9fafb при наведении на строку |
compact | checkbox | Отступы ячеек уменьшены с 10px×14px до 6px×8px |
responsive | checkbox | Обёртка overflow-x:auto, горизонтальная прокрутка на узких экранах |
flattenMode | select | Вложенность: Сплющивание (рекомендуется) / Ключи верхнего уровня / Строка |
tableClass | text | Пользовательский CSS-класс, внедряемый в <table class="..."> |
nullPlaceholder | text | Текст для null / undefined ячеек (пусто — показывает 'null') |
maxRows | number | Максимум строк (1-10000), авто-усечение с уведомлением при превышении |
caption | text | Пользовательский текст заголовка над таблицей (caption-side: top) |
indexHeader | text | Текст заголовка индексного столбца (по умолчанию #) |
flattenSeparator | text | Разделитель ключей в режиме сплющивания (по умолчанию ., можно _ / - и т. д.) |
wrapperClass | text | Пользовательский CSS-класс для адаптивной обёртки <div> (для продвинутых) |
Шпаргалка по правилам подсветки ячеек по типу
Инструмент автоматически применяет разные цвета в зависимости от JS-типа значения JSON для быстрого распознавания типа данных:
| JS-тип | Определение | Применяемый стиль | Пример вывода |
|---|---|---|---|
null / undefined | val === null || val === undefined | color: #9ca3af; font-style: italic; показывает плейсхолдер (настраивается) | <span style="color:#9ca3af;font-style:italic;">N/A</span> |
boolean (true) | typeof val === 'boolean' && val | color: #059669; | <span style="color:#059669;">true</span> |
boolean (false) | typeof val === 'boolean' && !val | color: #dc2626; | <span style="color:#dc2626;">false</span> |
number | typeof val === 'number' | color: #2563eb; | <span style="color:#2563eb;">42</span> |
object / array (режим сплющивания) | type === 'object' + извлечение по пути в режиме сплющивания | Вложенные объекты извлекаются по пути к атомарным значениям | user.name → 'Alice' |
object / array (другие режимы) | typeof val === 'object' | JSON.stringify с экранированием и обрезкой до 50 символов, фиолетовый курсив + title показывает полный JSON | <span style="color:#7c3aed;font-style:italic;" title="...">{"id":1…</span> |
string | иначе | Цвет текста по умолчанию #4b5563 | Jennifer Martinez |
Privacy & Security
Этот инструмент JSON в HTML выполняет весь парсинг JSON, сплющивание вложенности, генерацию HTML, копирование и скачивание исключительно в вашем браузере с помощью JavaScript. Введённые JSON-данные и сгенерированный HTML-код не загружаются ни на какой сервер, не записываются в логи, не кэшируются и не хранятся в облаке. Можно безопасно работать с конфиденциальными ответами API и внутренними бизнес-полями — при закрытии страницы все данные удаляются.
Authoritative References
- JSON Compress
- CSV в JSON
- JSON в CSV
- JSON Diff
- JSON Escape / Unescape
- Сглаживание JSON
- Форматтер JSON
- Генератор JSON
- JSONPath Запрос
- Объединение JSON
- Восстановление JSON
- Валидатор JSON Schema
- Сортировка JSON
- JSON Stringify
- JSON в HTML
- JSON в Java
- JSON в Markdown
- JSON в SQL
- JSON в TOML
- JSON в TypeScript
- XML в JSON
- Преобразовать JSON в XML
- YAML в JSON
- JSON → YAML Конвертер
- JSON в Go
- JSON в Rust
- JSON в Swift
- JSON в C#
- JSON в C++
- JSON в PHP
- JSON в Python