JSONPath Evaluator онлайн
Проверьте выражение JSONPath на вашем JSON и смотрите совпадения вживую, прямо в браузере. Ваши данные остаются на устройстве.
Ваш JSON разбирается и запрашивается локально в вашем браузере и никогда не загружается, но избегайте вставки чувствительных производственных данных в любой онлайн-инструмент.
Сначала нужно прочитать всё дерево? Попробуйте просмотрщик JSON.
Об инструменте JSONPath Evaluator
Этот JSONPath evaluator позволяет запрашивать документ JSON выражением JSONPath и наблюдать, как совпадения обновляются по мере ввода. Вставьте любой объект или массив JSON, введите путь вроде $.store.book[*].author, $..price или $.items[?(@.active)], и инструмент покажет, сколько узлов совпало, совпавшие значения как красиво выведенный JSON и переключатель для просмотра JSON Pointer вместо них. Как тестер JSONPath он поддерживает весь синтаксис: корень $, доступ к потомкам через точку и скобки, оператор рекурсивного спуска .., подстановочные знаки [*], срезы массивов, объединения и фильтрующие выражения с @ и сравнениями. Нажмите на любое из примеров выражений, чтобы вставить его в поле запроса. Некорректный JSON и сломанные пути выдают понятную ошибку, а не пустой экран. Всё работает в вашем браузере, поэтому вычисляемый JSON остаётся на устройстве.
Возможности
- Живые результаты: количество совпадений, значения и пути обновляются по мере правки JSON или выражения
- Переключение между совпавшими значениями (красивый JSON) и путём JSON Pointer для каждого совпадения
- Поддержка рекурсивного спуска ($..), подстановочных знаков ([*]), срезов массивов, объединений и фильтрующих выражений
- Фильтрация по содержимому узла предикатами в стиле [?(@.price < 10)] или [?(@.active)]
- Кликабельные примеры выражений, заполняющие поле запроса одним касанием
- Раздельные ошибки для некорректного JSON и некорректного выражения JSONPath
- Копирование совпавших значений или списка путей в один клик
- Обработка глубоко вложенных объектов и больших массивов без ухода со страницы
Как использовать JSONPath Evaluator
- Вставьте или введите ваш JSON на панели JSON слева.
- Введите выражение JSONPath в поле запроса или нажмите на один из примеров.
- Прочитайте совпавшие значения справа и проверьте количество совпадений над ними.
- Переключитесь на «Пути», чтобы увидеть JSON Pointer для каждого совпадения, затем скопируйте результаты.
Пример
Ввод
$.store.book[?(@.price < 10)].title
Результат
[
"Sayings of the Century",
"Moby Dick"
]
Фильтрующее выражение оставляет только книги дешевле 10, затем проецирует каждый заголовок.
Частые ошибки и устранение неполадок
- Панель результатов показывает «Invalid JSON» ещё до того, как вы написали путь. — Сначала исправьте JSON на левой панели — замыкающая запятая, одинарные кавычки или ключ без кавычек остановят его разбор. Прогоните его через форматировщик JSON, если не уверены.
- Фильтр вроде [?(@.price < 10)] не возвращает совпадений, хотя поле существует. — Фильтры сравнивают сырые значения, поэтому убедитесь, что поле — число, а не строка, и что @ ссылается на каждый элемент массива. Заключайте сравнения строк в кавычки, например [?(@.color=="red")].
- $.book[0] ничего не возвращает, а $..book[0] работает. — $. следует только по точному пути от корня. Если book вложен, либо пропишите полный путь, либо используйте оператор рекурсивного спуска .., чтобы искать на любой глубине.
Часто задаваемые вопросы
- В чём разница между $.. и $. в JSONPath?
- $. следует по точному пути уровень за уровнем от корня, поэтому $.store.book совпадает только с ключом book непосредственно под store. $.. — это оператор рекурсивного спуска: $..book находит каждый ключ book на любой глубине документа. Используйте $.., когда не уверены, где находится поле.
- Поддерживает ли этот JSONPath evaluator фильтрующие выражения?
- Да. Фильтры используют синтаксис [?(...)], где @ — это текущий узел, например $.items[?(@.active)] или $.store.book[?(@.price < 10)]. Вы можете сравнивать числа, строки и булевы значения и комбинировать условия через && и ||.
- Что показывает переключатель «Пути»?
- Он возвращает JSON Pointer для каждого совпадения вместо значения — строку вроде /store/book/0/author, которая указывает узел в документе. Указатели полезны, когда нужно знать, где находится значение, а не только что это.
- Почему моё выражение совпадает с большим числом результатов, чем я ожидал?
- Подстановочные знаки и рекурсивный спуск жадные: [*] совпадает с каждым элементом массива или каждым свойством объекта, а $.. обходит всё дерево. Сузьте результат конкретным ключом, индексом, срезом массива вроде [0:2] или фильтром.
- Можно ли выбрать несколько элементов массива сразу?
- Да. Используйте объединение вроде [0,2] для выбора конкретных индексов или срез вроде [1:3] для диапазона и [-1:] для последнего элемента. Оба работают на любом массиве, достижимом по пути.
- Отправляется ли куда-либо мой JSON при выполнении запроса?
- Нет. Выражение вычисляется полностью в вашем браузере, поэтому вставленный JSON и выполняемые запросы обрабатываются локально на вашем устройстве и не загружаются.
Связанные инструменты
- Форматировщик JSON — Форматируйте, минимизируйте и проверяйте JSON с указанием места ошибок.
- Просмотрщик JSON — Текстовый и древовидный просмотр со сворачиванием/разворачиванием и путями узлов.
- JSON Flatten — Сплющивайте вложенный JSON в ключи с точечной нотацией или разворачивайте обратно.
- JSON Diff — Сравнение двух документов JSON со структурным различием.
- JSON в CSV — Преобразуйте массив плоских объектов JSON в CSV.
- YAML ↔ JSON — Преобразуйте YAML в JSON и обратно.
Все инструменты ArrayKit