Инструменты JSON

JSON Pointerодин адрес, одно значение

Выберите операцию. Документ JSON нужен только для получения значения по адресу.

JSON Pointer

Документ JSON

Текст Pointer

Предпросмотр результата

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

Входные данные остаются в памяти браузера, не отправляются и не сохраняются.

Обычный: пустой ввод выбирает корень; / — пустой ключ. Фрагмент: добавьте # и процентное кодирование UTF-8. Пробелы и переводы строк значимы и не удаляются.

Выполните снова, чтобы обновить результат. Пока он устарел, копирование и скачивание отключены.

JSON Pointer позволяет проверить адрес отдельно от документа, а затем найти значение. Правильная запись не гарантирует существования цели. Отсутствующий ключ вызывает ошибку; найденные null, false и пустая строка считаются корректными значениями.

Пути JSON Pointer проходят через ключи и позиции массивов с помощью токенов. Эти указатели задают точный поиск, без приблизительного совпадения или полного дерева. Новый адрес создаётся из явно заданного массива строк.

Зачем нужен JSON Pointer?

Корень отличается от пустого ключа

JSON Pointer обозначает корень пустой строкой. / указывает на ключ с пустым именем, а /items/0 — на первый элемент массива. Токены помогают проверить, почему эти три адреса ведут в разные места.

Три цветных указателя направлены на внешнюю рамку, значение с полым символом ключа и первый элемент массива.

Отдельные слои кодирования

JSON Pointer экранирует ~ и / внутри токенов. URI-фрагмент добавляет процентное кодирование UTF-8. Справочные сведения показывают обе формы; каждый слой декодируется ровно один раз.

Геометрические токены получают защитные символы, а на следующем этапе превращаются в группы небольших блоков байтов.

Выберите нужный вход

01

Проверьте синтаксис без документа

Разбор требует только адрес. Создание принимает строки: [] означает корень, [""] пустой ключ, а [0] отклоняется. Только при поиске тип исходного контейнера определяет, является ли "0" ключом или индексом.

02

Укажите представление явно

Обычный Pointer не декодирует проценты. Фрагмент начинается с # и декодируется до разделения по /. #/a%2Fb даёт два токена, а #/a~1b выбирает ключ a/b. Плюс не превращается в пробел.

03

Проверьте результат перед копированием

Ctrl/Cmd+Enter запускает операцию. Экспорт содержит основной результат без справочных сведений. После правки он устаревает. Пример и очистка проходят через предпросмотр замены; отмена восстанавливает входы, параметры и выход.

Чтение и создание адресов

Пять отдельных операций

JSON Pointer разбирает адрес, находит значение или создаёт путь из токенов. Ещё две операции экранируют и декодируют один токен. Документ читается только при поиске значения; остальные режимы игнорируют это поле.

Точные ключи и индексы

Ключи сравниваются без нормализации Unicode и изменения регистра. Массивы требуют канонических индексов с 0. У объекта могут быть ключи "01" и "-", хотя такие токены не выбирают существующий элемент массива.

Числа без округления

Большие целые, точные десятичные числа, показатели степени и -0 сохраняют исходную запись. Преобразования с плавающей точкой нет. Выбранный контейнер остаётся полной структурой JSON, а не объектом, превращённым в строку.

Однократное декодирование

~01 становится ~1, а не /. Неверные последовательности сопровождаются номером токена, начиная с 1. Фрагменты требуют корректного UTF-8; %252F становится %2F без повторного преобразования.

Границы и представления

Без запросов и изменений
Нет JSONPath, фильтров, шаблонов, JSON Patch, полного дерева, импорта файлов и загрузки URL. Пустой адрес выбирает корень, а не список путей. Отсутствующий адрес вызывает ошибку без создания значения по умолчанию.
Строгий JSON и бюджеты
Каждый используемый вход ограничен 500 000 символами; основной результат вместе с метаданными имеет тот же предел. Максимум 100 000 на токен или обычный Pointer, 1 000 токенов, глубина 100, 50 000 узлов и 1 000 символов на число. Комментарии, BOM, конечные запятые и повторные ключи запрещены.
Один токен — не целый путь
Экранирование принимает исходный токен. Обратная операция ожидает ~0 и ~1 и отклоняет обычный /. Пробелы и окончания CRLF сохраняются. Инструмент не обрезает ввод и не снимает внешние кавычки JSON автоматически.
Строгие URI-фрагменты
Требуются # и корректные UTF-8-последовательности %HH. Обычные пробелы, символы вне ASCII и дополнительный # запрещены. Проценты декодируются до разделения токенов и однократной обработки ~. Сгенерированная справочная форма может иметь другую каноническую запись.
Одиночные суррогаты UTF-16
Обычный результат может сохранить одиночный суррогат в памяти, но копирование и скачивание UTF-8 блокируются. Фрагмент недоступен, его явное создание завершается ошибкой. Разбор выдаёт экранированный JSON-массив токенов; этот массив и JSON-значения можно безопасно экспортировать.

Вопросы о JSON Pointer

Чем JSONPath отличается от JSON Pointer?

JSONPath может выбирать несколько значений через фильтры и шаблоны. JSON Pointer задаёт один точный адрес. Здесь не выполняются выражения запросов и не создаются отсутствующие узлы.

Как представлены типы JSON, в отличие от typeof JavaScript?

Результат поиска — само значение в JSON, а не бейдж typeof. Массив остаётся массивом, null отображается как null, строки имеют кавычки. Контейнеры не превращаются в строки, числа сохраняют точность. Полного дерева с бейджами здесь нет.

Как работает поиск?

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

Справляется ли инструмент с очень большим JSON?

Документ ограничен 500 000 символами, 50 000 узлами, глубиной 100 и числами длиной до 1 000 символов. Есть отдельные пределы токенов и пути; результат с метаданными — до 500 000 символов. Превышение завершает операцию ошибкой, без частичного экспорта.

Отправляется ли что-нибудь на сервер?

Нет. Данные обрабатываются только в памяти браузера, не отправляются и не сохраняются. Внешние документы по URL также не загружаются.

Адрес привёл к неожиданному результату?

Проверьте один адрес

Попробуйте JSON Pointer на примере и сравните корень, токены и фрагмент перед копированием полного основного результата.