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

Тестер JSONPathнайдите значение и его источник

Попробуйте фильтр по цене и сравните пути. Отключите автозапуск, если хотите выполнять запросы вручную.

Тестер JSONPath

Входной JSON

JSON обрабатывается в браузере. Локально сохраняются только выражения, которые вы явно сохранили.

Совпадения

Нормализованный путьЗначение

Предпросмотр каждого значения ограничен 1 200 символами. Копирование и скачивание включают весь выбранный вид результата.

RFC 9535 · jsonpath-rfc9535 1.3.0 · Без выражений JavaScript

Результат устарел; экспорт и передача отключены.

Продолжить в другом инструменте

После нажатия откроется новая вкладка. Данные передаются в памяти, без записи в URL. Лимит: 500 000 символов.

Тестер JSONPath полезен, когда одинаковые имена полей встречаются в разных частях ответа API. По одному значению трудно понять, из какой записи оно пришло; путь снимает эту неоднозначность.

Проверьте JSONPath выражение с точным путём и сравните его с рекурсивным запросом до переноса в программу. Здесь используется один явно указанный диалект без автоматического перебора других реализаций.

Зачем использовать Тестер JSONPath?

Значение остаётся связано с путём

Тестер JSONPath показывает пути совпадений вроде $['store']['book'][0] рядом со значениями. Две книги с одинаковой ценой остаются двумя отдельными совпадениями: их позиции не исчезают при автоматическом объединении.

Две выбранные ветви дерева данных и соответствующие значения с путями к ним.

Передавайте нужный набор данных

Перед отправкой выберите исходный документ или массив найденных значений. Объекты можно преобразовать в строки CSV, а скаляры проверить в форматировщике. Завершение запроса само по себе ничего не отправляет.

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

Сначала определите область поиска

01

Сравните точный путь и рекурсивный поиск

Пример с названиями проходит только по массиву книг. $..price находит также цену велосипеда. Просмотрите пути, чтобы не включить одноимённые поля из другой части документа в нужную выборку.

02

Выберите момент выполнения

Автозапуск ждёт 350мс после правки. В ручном режиме доступны кнопка и Ctrl/Cmd+Enter. Изменение JSON или выражения сразу блокирует копирование, скачивание и передачу прежнего результата до завершения нового запроса.

03

Учитывайте внешнюю оболочку массива

Значения выгружаются массивом даже при одном совпадении. Вид путей экспортирует массив строк. Можно сохранить до 20 выражений; загрузка сохранённого запроса не заменяет текущий документ.

Выборка с проверяемым происхождением

Стандартные фильтры и функции

$.store.book[?@.price < 10] выбирает недорогие книги. Условия объединяются через && и ||; доступны length, count, match, search и value. Движок разбирает синтаксис JSONPath, а не выполняет произвольный JavaScript.

Несколько способов выбрать узлы

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

Пустой список отличается от null

Корректный запрос без совпадений даёт []. Если найден узел со значением null, результат будет [null]. Оба варианта допустимы. Ошибка синтаксиса выводится отдельно и запрещает экспорт, а не маскируется пустым массивом.

Постепенный просмотр и полный экспорт

Таблица добавляет по 50 совпадений, предпросмотр значения ограничен 1 200 символами. Копирование и скачивание включают весь принятый результат. Перед удалением сохранённого выражения показана одна удаляемая запись; действие можно один раз отменить.

Диалект и ограничения обработки

Одна конкретная реализация
Используется jsonpath-rfc9535 1.3.0 на основе RFC 9535. Совместимость со всеми расширениями Jayway, Goessner, kubectl или JSONPath Plus не заявляется. Конвейеры jq, JMESPath, пользовательские функции и скрипты не принимаются.
Строгий JSON и числовые границы
Комментарии, JSON5, завершающие запятые, повторяющиеся ключи, небезопасные целые и числовое переполнение отклоняются. Обычные дроби используют числа JavaScript; запись экспоненты, конечные нули и отрицательный ноль в выводе не сохраняются.
Ограниченный объём работы
Ввод до 500 000 символов, глубина 100, 50 000 узлов, выражение до 2 000 символов, 5 000 совпадений и суммарный вывод до 2 000 000 символов. Поток останавливается через 2 секунды. При превышении лимита частичный результат скачать нельзя.
Выборка не меняет форму записей
Запрос не редактирует значения, не группирует строки и не создаёт объекты. Для CSV подходит объект или массив, состоящий только из объектов. Скаляры не превращаются автоматически в строки таблицы.
Явное сохранение и передача
Нет импорта файлов и URL, облачной синхронизации и ссылок с данными. Сохраняются только выбранные выражения. Передача идёт в памяти в новую вкладку того же источника, до 500 000 символов; исходную вкладку нужно оставить открытой.

Тестер JSONPath: вопросы и ответы

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

JSON Pointer указывает на одно конкретное место. Тестер JSONPath позволяет выбирать несколько узлов с помощью фильтров и подстановочных знаков. Нормализованные пути в таблице записаны в синтаксисе JSONPath, а не RFC 6901.

Что означают $ и @?

$ обозначает корень всего документа. @ относится к текущему кандидату внутри фильтра. Поэтому @.price проверяет цену именно той книги, которая сейчас рассматривается, а не произвольное поле в корне.

Фильтры выполняют JavaScript?

Нет. Тестер JSONPath разбирает запрос RFC-парсером и не выполняет произвольный код JavaScript. Функции match и search всё же обрабатывают регулярные выражения и могут потребовать времени, поэтому для них действует общий лимит рабочего потока.

Почему нет совпадений — пустой массив?

Результат — список выбранных узлов. Если узлов нет, список пуст: []. Узел со значением null существует и даёт [null]. Счётчик позволяет отличить отсутствие совпадений от найденного пустого значения.

Что на самом деле делает выражение JSONPath вроде $.store.book[*].author?

Выражение идёт от корня к store, затем к массиву book, выбирает каждый его элемент через [*] и берёт поле author. Оно возвращает существующие значения этого поля, а не создаёт новые записи и не ищет author во всех ветвях документа.

Запрос обрабатывается неправильно?

Попробуйте фильтр по цене

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