Восстановить JSON из карты путей

Соберите дерево из карты путей JSON Pointer.

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

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

JSONNDJSONJSONLTXT

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

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

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

Результат

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

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

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

Вложенный JSON с восстановленными объектами, массивами и конечными значениями.

  1. Вставьте JSON с двумя картами containers и values.
  2. Восстановите структуру и исправьте конфликтующие пути, если они обнаружены.
  3. Проверьте типы и значения, затем скачайте JSON.

Пример

Восстановить JSON из карты путей

Исходные данные
{"containers":{"":"object","/имена":"array"},"values":{"/имена/0":"Анна"}}

Восстановите структуру.

Что получится
{"имена":["Анна"]}
Форматы и ограничения

Соберите вложенную структуру из результата разворачивания JSON. Каждый родитель должен быть явно описан в containers, а конечные значения располагаются в values.

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

Вложенный JSON с восстановленными объектами, массивами и конечными значениями.

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

Принимается только формат {containers, values}. Конфликты, отсутствующие родители и пропуски индексов массивов отклоняются.

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

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

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

Подойдёт ли плоский объект с ключами user.name?

Нет. Нужны две карты из инструмента разворачивания JSON. Пути используют JSON Pointer, а типы родителей задаются явно.

Можно ли объявить путь и контейнером, и значением?

Нет. Такой конфликт вызывает ошибку, чтобы данные не перезаписывались по неявному правилу.

Можно ли пропустить контейнер родителя?

Нет. Для пути /a/b контейнер /a и корень "" должны быть явно описаны как object или array.

Как восстановить пустой массив?

Запишите его путь в containers со значением array и не добавляйте дочерние пути. Для пустого корневого массива используйте {"containers":{"":"array"},"values":{}}.

Можно ли начать массив с индекса 1?

Нет. Индексы должны идти от 0 без пропусков и ведущих нулей. Разреженные массивы не создаются.

Допустимы ли объекты в values?

Нет. В values хранятся только строки, числа, логические значения и null. Объекты и массивы описываются через containers и дочерние пути.

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

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

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

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

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