JSONPath Tester
Вставьте JSON-документ и введите выражение типа JSONPath, например $..book[?(@.price<10)]. Тестер оценит его по данным документа и отобразит все соответствующие значения с точным указанием пути каждого соответствия. Это полезно для проверки запроса, который вы собираетесь вставить в скрипт или спецификацию API (Postman, k6 и JMeter поддерживают JSONPath).
Как проверить выражение JSONPath
-
1
Вставьте JSON-документ
Любой действительный JSON-объект, объект, массив или глубоко вложенный JSON-объект.
-
2
Введите выражение
Начните с `$` для корня; используйте `.` для дочернего узла, `..` для рекурсивного обхода и `[*]` для подстановочного символа.
-
3
Просматривайте совпадения в реальном времени
Каждое совпадение отображается с указанием его значения и полного JSONPath, выделенного в исходном документе.
-
4
Копируйте результаты
Копируйте результаты сопоставления в виде массива JSON или копируйте каждый отдельный путь для использования в последующем коде.
Справочник по синтаксису JSONPath
| Выражение | Значение |
|---|---|
$ |
Корневой элемент |
$.store |
Дочерний элемент $ с именем store |
$["store"] |
То же самое, в форме скобок |
$..author |
Все свойства author на любом уровне вложенности |
$.store.book[*] |
Все книги в магазине |
$.store.book[0] |
Первая книга |
$.store.book[-1:] |
Последняя книга |
$.store.book[0:2] |
Первые две книги (срез) |
$.store.book[?(@.isbn)] |
Книги со свойством isbn |
$.store.book[?(@.price < 10)] |
Книги дешевле 10 |
$.store.book[?(@.category == "fiction")] |
Художественные книги |
$..* |
Каждое значение, где угодно |
Выражения фильтров
В выражениях фильтров используется @ для указания на текущий узел. Тестер поддерживает распространённые операторы ==, !=, <, >, <=, >=, &&, ||, а также регулярные выражения =~.
$.items[?(@.qty >= 10 && @.price < 50)]
Диалекты JSONPath
Существует несколько реализаций JSONPath с небольшими несовместимостями. Данный тестер следует исходной спецификации Goessner и уточнениям RFC 9535 и совместим со следующими библиотеками:
- Jayway JsonPath (Java)
- jsonpath-plus (JavaScript)
- jsonpath-rw (Python)
- базовые выражения путей jq
Несовместимые возможности (например, выражения-скрипты с произвольным кодом на JavaScript) отмечаются в панели ошибок.
Когда JSONPath лучше полноценного парсера
- Проверки в тестах:
pm.expect(jsonData).to.have.jsonPath(...)в Postman принимает путь. - Извлечение конфигурации: получить одно значение из огромного ответа API без библиотеки.
- Скрипты нагрузочного тестирования: k6, JMeter и Gatling поддерживают JSONPath для проверок.
- Kubernetes / AWS CLI: флаги
--queryи--jsonpathпозволяют формировать вывод из командной строки.
Типичные ошибки
- Использование
.для массива.$.users.0.nameневерно; используйте$.users[0].name. - Пропуск
..для указания глубины. Путь вроде$.nameсоответствует толькоnameверхнего уровня; используйте$..name, чтобы найти все. - Путаница JSONPath с jq. jq, это надмножество с потоком управления и преобразованиями; JSONPath служит исключительно для извлечения.
- Привязка регулярных выражений.
=~ /foo/соответствует подстрокам; используйте/^foo$/для точного совпадения.
Часто задаваемые вопросы
JSONPath, это исключительно язык извлечения данных: он позволяет выбирать данные, фильтровать их и выделять нужные фрагменты. jq же представляет собой полноценный язык запросов и преобразований с поддержкой управления потоком выполнения, переменных и функций. Для простого извлечения данных JSONPath более универсален; для сложных преобразований лучше использовать jq.
Оригинальные спецификации Goessner в сочетании с усовершенствованиями из RFC 9535; совместимы с JaywayJsonPath (Java) и jsonpath-plus (Node). Расширения, специфичные для конкретных диалектов (выражения скриптов с произвольным кодом), не поддерживаются.
Да. Значение $..book[?(@.title =~ /^Harry.*/)] соответствует всем книгам, названия которых начинаются с «Harry». Для полного совпадения используйте ^ и $.
Да. И JSON, и вычислитель JSONPath работают в вашем браузере; ваш документ и все запросы никогда не покидают эту вкладку.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Шпаргалка по Markdown
Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Шпаргалка по регулярным выражениям
Поисковый справочник регулярных выражений для JavaScript, PCRE2/PHP, Python re и .NET. Сравнивайте токены, синтаксис движков, якоря, группы, проверки и флаги.
Инструмент доступен на других языках
- Testeur JSONPath [FR]
- JSONPath-testare [SV]
- เครื่องมือทดสอบ JSON Path [TH]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- JSON Path Tester [ID]
- Công cụ kiểm thử JSONPath [VI]
- JSONPath 테스터 [KO]
- JSONPath-Tester [DE]
- Probador de JSONPath [ES]
- JSON Path Tester [NL]
- Tester JSONPath [PL]
- JSONPath テスター [JA]
- Testador de JSONPath [PT]
- JSONPath Test Aracı [TR]
- JSON路径测试器 [ZH]
- JSONPath Tester [EN]
- Tester JSONPath [IT]