Развернуть JSON в карту путей

Плоские значения и типы контейнеров без потери массивов.

Открыть файл UTF-8

Можно перетащить файл сюда

JSONNDJSONJSONLTXT

Один файл до 1 МиБ, текст до 200 000 символов. Можно вставить данные в поле ниже.

Формат: containers задаёт object или array для каждого контейнера; values хранит конечные значения по JSON Pointer. Обе карты нужны для восстановления пустых контейнеров и массивов.

Обработка в браузере. До 64 уровней и 30 000 значений JSON. Повторяющиеся ключи и числа с потерей точности отклоняются. После обновления страницы редактор сбросится.

Результат

Вставьте данные или выберите пример. После обработки проверьте результат и скачайте файл.

Данные остаются на вашем устройстве.

Как пользоваться

Объект {containers, values}: типы контейнеров и конечные значения по JSON Pointer.

  1. Вставьте любой корректный JSON.
  2. Создайте карты containers и values.
  3. Скачайте обе карты одним JSON; для обратной операции используйте восстановление JSON.

Пример

Развернуть JSON в карту путей

Исходные данные
{"список":[1],"пусто":{}}

Разверните вложенную структуру.

Что получится
{"containers":{"":"object","/список":"array","/пусто":"object"},"values":{"/список/0":1}}
Форматы и ограничения

Просмотрите конечные значения сложного JSON по адресам и подготовьте данные для обратного восстановления. Тип каждого контейнера записывается отдельно, поэтому объект с числовыми ключами не путается с массивом.

На входе
JSON UTF-8
Результат
JSON

Объект {containers, values}: типы контейнеров и конечные значения по JSON Pointer.

  • Каждое поле — до 200 000 символов; импорт одного файла UTF-8 — до 1 МиБ.
  • Вложенность JSON — до 64 уровней, дерево — до 30 000 значений, результат — до 1 000 000 символов.
  • Повторяющиеся имена ключей и числа с потерей точности отклоняются. Большие числа передавайте строками.

Это собственный обратимый формат сервиса, а не произвольный объект с точками в именах полей. Сохраните обе карты.

Данные обрабатываются только в вашем браузере и не отправляются серверу. Редактор хранит их в памяти: после обновления страницы ввод, настройки и результат сбрасываются.

Данные обрабатываются только в вашем браузере и не отправляются серверу. Редактор хранит их в памяти: после обновления страницы ввод, настройки и результат сбрасываются. Это собственный обратимый формат сервиса, а не произвольный объект с точками в именах полей. Сохраните обе карты. Каждое поле — до 200 000 символов; импорт одного файла UTF-8 — до 1 МиБ. Вложенность JSON — до 64 уровней, дерево — до 30 000 значений, результат — до 1 000 000 символов. Повторяющиеся имена ключей и числа с потерей точности отклоняются. Большие числа передавайте строками.

Вопросы об инструменте

Зачем нужна карта containers?

Путь /0 может быть элементом массива или полем объекта. Явные типы контейнеров устраняют эту неоднозначность и сохраняют пустые массивы и объекты.

Что обозначает пустой путь ""?

Это корень документа. Для объекта или массива его тип попадает в containers; для скалярного корня само значение попадает в values.

Как записываются / и ~ в именах ключей?

JSON Pointer экранирует / как ~1, а ~ как ~0. Например, ключ a/b~c получает путь /a~1b~0c.

Сохранятся ли пустые объекты внутри массива?

Да. Для каждого такого пути будет запись object в containers, даже если конечных значений под ним нет.

Можно ли использовать разделитель точку?

Здесь выбран только JSON Pointer. Точки в исходных именах сохраняются как обычные символы и не разделяют уровни.

Можно ли восстановить исходную структуру?

Да, передайте весь результат в инструмент восстановления JSON. Значения и типы контейнеров сохраняются; пробелы исходного форматирования не сохраняются.

Разобраться в задаче

Все инструкции
Данные и полезное5 мин

Как развернуть JSON в пути, восстановить дерево и выбрать нужные поля

Используйте JSON Pointer, сохраните типы объектов и массивов, извлеките значение и удалите ключи по точным именам.

Читать инструкцию