UTILS.
100% в браузере
⊞}

JSON: сглаживание / восстановление

Сглаживайте вложенный JSON в ключи с точечной нотацией или восстанавливайте вложенные объекты из плоских ключей.

— результат появится здесь —

Об этом инструменте

JSON Flatten / Unflatten — бесплатный браузерный инструмент, который преобразует вложенный JSON в одноуровневую карту ключей в точечной нотации и восстанавливает вложенную структуру обратно из этих плоских ключей. Вставьте JSON и выберите направление: Flatten схлопывает каждый путь в один плоский объект (например, user.name или user.roles.0), а Unflatten разворачивает точечные ключи обратно во вложенные объекты и массивы.

Оба направления разбирают ваш ввод собственным парсером JSON браузера и форматируют результат с отступом в два пробела. Объекты и массивы обходятся рекурсивно, элементы массивов сохраняют свой числовой индекс в пути, а конечные значения — строки, числа, булевы, null, пустые объекты и массивы — сохраняются без изменений. Некорректный JSON показывает встроенную ошибку вместо вывода, а кнопка копирования помещает результат в буфер обмена.

Всё работает локально на JavaScript: без загрузок, аккаунтов и отслеживания, и работает офлайн. Уплощение удобно для превращения конфигурации в плоские пары ключ/значение, например переменные окружения или файлы i18n-сообщений, для сравнения глубоко вложенных данных или для перекройки ответов API, а разворачивание обращает это же отображение.

Часто задаваемые вопросы

Как обрабатываются массивы?
Элементы массива используют свой числовой индекс в ключе, например items.0.name. При разворачивании любой сегмент пути, состоящий только из цифр, трактуется как индекс массива, поэтому такие части восстанавливаются как массивы.
Загружаются ли мои данные?
Нет. Разбор и конвертация выполняются целиком в JavaScript вашего браузера, ничего не отправляется на сервер, и инструмент продолжает работать офлайн.
Что происходит с пустыми объектами и массивами?
Они трактуются как конечные значения и сохраняются как есть под своим ключом, поэтому пустые {} или [] переживают уплощение без изменений, а не разворачиваются в более глубокие ключи.
Всегда ли уплощение с последующим разворачиванием возвращает исходный JSON?
Почти всегда, но два случая отличаются: ключ, уже содержащий точку, при разворачивании распадается на дополнительную вложенность, а ключ объекта, состоящий только из цифр, восстанавливается как индекс массива, а не как ключ объекта.

Больше инструментов