Как пользоваться: Тестер JSONPath
- Вставьте свой JSON (или оставьте пример с книжным магазином).
- Введите выражение JSONPath или нажмите на один из примеров.
- Просмотрите найденные значения и точный путь каждого из них, затем скопируйте результат.
Синтаксис JSONPath
| Выражение | Значение |
|---|---|
$ | Корень документа |
.key или ['key'] | Дочернее свойство (для ключей с пробелами или точками используйте скобки) |
[0], [-1] | Элемент массива по индексу; отрицательный индекс отсчитывается с конца |
[0:3], [-2:] | Срез массива |
* | Подстановочный знак: все дочерние элементы |
.. | Рекурсивный спуск: поиск на любой глубине ($..price) |
[?(@.price < 10)] | Фильтр: элементы, для которых выражение истинно; @ означает текущий элемент |
[0,2], ['a','b'] | Объединение нескольких индексов или ключей |
Фильтры
Фильтры поддерживают сравнения (==, !=, <, >= и др.), логические операторы (&&, ||) и проверку наличия свойства ([?(@.isbn)]). Этот инструмент вычисляет фильтры в безопасном изолированном режиме, поэтому выражения не могут выполнять произвольный код.
Реализации отличаются
Долгие годы JSONPath был неформальным стандартом, пока в 2024 году его не закрепил RFC 9535. Библиотеки всё ещё различаются в частных случаях: синтаксис фильтров, регулярные выражения и поведение при отсутствии ключей. Этот инструмент использует JSONPath Plus, популярную реализацию на JavaScript. Точный диалект проверяйте в библиотеке, которую используете (Jayway в Java, jsonpath-ng в Python, AWS Step Functions, Postman).
JSONPath и jq
jq — это полноценный язык преобразования данных для командной строки, а JSONPath только выбирает значения. Запрос $.store.book[*].title в JSONPath соответствует .store.book[].title в jq. Чтобы просмотреть документ и копировать пути кликом, используйте просмотрщик JSON; для синтаксиса сопоставления в Make, Zapier и n8n подойдёт поиск пути JSON.
Также ищут как: json запрос.
Инструменты, которые хорошо сочетаются с Тестер JSONPath
- JSON форматтер — Вставьте JSON, чтобы отформатировать, минифицировать или проверить его.
- Валидатор JSON Schema — Вставьте схему и JSON, чтобы увидеть, какие значения нарушают какие правила, или сгенерируйте стартовую схему по примеру данных.
- Сравнение JSON — Точно определите, что изменилось между двумя JSON-документами (ответами API, версиями конфигов, фикстурами или экспортами).
- Валидатор OpenAPI / Swagger — Вставьте спецификацию API, чтобы проверить её по официальной схеме OpenAPI, найти битые ссылки и несогласованные параметры пути и увидеть все эндпоинты сразу.
Часто задаваемые вопросы
Что означает $.. в JSONPath?
$..price находит каждое свойство price на любой глубине.Как отфильтровать массив в JSONPath?
$.items[?(@.price > 10)] выбирает элементы, у которых цена больше 10.