Загрузка...
Загрузка...
Нашли баг, сбой или ошибку в работе сервиса? Есть предложение по улучшению? Напишите нам — мы читаем каждое сообщение и стараемся быстро исправлять проблемы.
JSONPath синтаксис: $, .., [*], фильтры. Примеры запросов к JSON данным. Онлайн тестер JSONPath выражений.
Быстрые определения и связанные понятия из SEO-глоссария reChecker.
Минификация (minification) — удаление лишних символов из CSS, JS и HTML без изменения функциональности. Уменьшает размер файлов на 20-60%.
Читать в глоссарии →CORS (Cross-Origin Resource Sharing) — механизм браузера для контроля запросов между разными доменами. Неправильная настройка CORS — угроза безопасности.
Читать в глоссарии →INP — метрика Core Web Vitals, измеряющая отзывчивость страницы на клики и нажатия. Заменила FID в марте 2024. Норма: до 200 миллисекунд.
Читать в глоссарии →Адаптивный дизайн (Responsive Design) — подход к веб-разработке, при котором сайт корректно отображается на всех устройствах: мобильных, планшетах, десктопах.
Читать в глоссарии →Форматируйте GraphQL запросы онлайн. Query, mutation, subscription. Синтаксис GraphQL, минификация, проверка.
УтилитыКак генерировать случайные тестовые данные онлайн: числа, строки, UUID, email-адреса, имена, цвета, IP-адреса. Применение в тестировании и разработке.
УтилитыПроверьте CSV файл онлайн: количество колонок, пустые ячейки, разделители. Поддержка запятой, точки с запятой, TAB.
УтилитыКак использовать инструмент поиска и замены текста онлайн: регулярные выражения, практические примеры, массовая замена URL и email.
Поделитесь с коллегами или изучите другие материалы блога
JSONPath — язык запросов к JSON-документам, аналог XPath для XML. Он позволяет извлечь нужные данные из вложенных структур без написания циклов на JavaScript или Python. Особенно полезен при работе с API-ответами и конфигурациями.
JSONPath был предложен Стефаном Гёссером в 2007 году как облегчённый XPath для JSON. В отличие от XPath, JSONPath работает с объектами, массивами и примитивами JavaScript-типов.
Пример: есть JSON-ответ API и нужно получить имена всех авторов из списка статей. JSONPath-запрос $.articles[*].author сделает это за одну строку.
| Оператор | Значение | Пример |
|---|---|---|
$ | Корень документа | $ |
.key | Дочерний элемент | $.name |
..key | Рекурсивный поиск | $..name |
[*] | Все элементы массива | $.items[*] |
[n] | Элемент по индексу | $.items[0] |
[1,3] | Несколько индексов | $.items[1,3] |
[1:4] | Срез (slice) | $.items[1:4] |
[-1] | Последний элемент | $.items[-1] |
[?(@.price < 10)] | Фильтр | $.items[?(@.price < 10)] |
Возьмём тестовый JSON:
{
"store": {
"books": [
{ "title": "CSS Secrets", "author": "Lea Verou", "price": 29.99 },
{ "title": "You Don't Know JS", "author": "Kyle Simpson", "price": 0 },
{ "title": "Clean Code", "author": "Robert Martin", "price": 34.99 }
],
"name": "Bookstore"
}
}
Получить все книги:
$.store.books[*]
Получить только заголовки:
$.store.books[*].title
Найти книги дешевле 30:
$.store.books[?(@.price < 30)]
Рекурсивный поиск всех полей author:
$..author
Последняя книга в списке:
$.store.books[-1]
Срез — первые две книги:
$.store.books[0:2]
Фильтры — самая мощная часть JSONPath. Синтаксис: [?(<выражение>)], где @ означает текущий элемент.
$.books[?(@.price > 0 && @.author == "Kyle Simpson")]
Поддерживаемые операторы: ==, !=, <, <=, >, >=, =~ (регулярные выражения в некоторых реализациях).
Postman — JSONPath-запросы в тестах для извлечения значений из ответа API.
Kubernetes — JSONPath в kubectl:
kubectl get pods -o jsonpath='{.items[*].metadata.name}'
AWS — условия в IAM-политиках, Step Functions:
"InputPath": "$.order.items[?(@.quantity > 0)]"
Grafana, Prometheus — извлечение метрик из JSON-ответов.
| Инструмент | Синтаксис | Применение |
|---|---|---|
| JSONPath | $.items[*].name | Postman, Kubernetes, Spring |
| JMESPath | items[*].name | AWS CLI, Ansible |
| jq | .items[] | .name | Терминал, скрипты |
Для форматирования и валидации JSON-документов перед применением запросов используйте JSON Formatter. Для проверки схемы данных — JSON Schema Validator.
JSONPath тестер на reChecker позволяет вставить JSON и JSONPath-выражение, чтобы мгновенно увидеть результат выборки. Удобно для отладки запросов к API без написания кода.