Сравните точный путь и рекурсивный поиск
Пример с названиями проходит только по массиву книг. $..price находит также цену велосипеда. Просмотрите пути, чтобы не включить одноимённые поля из другой части документа в нужную выборку.
Инструменты JSON
Попробуйте фильтр по цене и сравните пути. Отключите автозапуск, если хотите выполнять запросы вручную.
JSON обрабатывается в браузере. Локально сохраняются только выражения, которые вы явно сохранили.
| Нормализованный путь | Значение |
|---|
Предпросмотр каждого значения ограничен 1 200 символами. Копирование и скачивание включают весь выбранный вид результата.
RFC 9535 · jsonpath-rfc9535 1.3.0 · Без выражений JavaScript
Результат устарел; экспорт и передача отключены.
Тестер JSONPath полезен, когда одинаковые имена полей встречаются в разных частях ответа API. По одному значению трудно понять, из какой записи оно пришло; путь снимает эту неоднозначность.
Проверьте JSONPath выражение с точным путём и сравните его с рекурсивным запросом до переноса в программу. Здесь используется один явно указанный диалект без автоматического перебора других реализаций.
Тестер JSONPath показывает пути совпадений вроде $['store']['book'][0] рядом со значениями. Две книги с одинаковой ценой остаются двумя отдельными совпадениями: их позиции не исчезают при автоматическом объединении.
Перед отправкой выберите исходный документ или массив найденных значений. Объекты можно преобразовать в строки CSV, а скаляры проверить в форматировщике. Завершение запроса само по себе ничего не отправляет.
Пример с названиями проходит только по массиву книг. $..price находит также цену велосипеда. Просмотрите пути, чтобы не включить одноимённые поля из другой части документа в нужную выборку.
Автозапуск ждёт 350мс после правки. В ручном режиме доступны кнопка и Ctrl/Cmd+Enter. Изменение JSON или выражения сразу блокирует копирование, скачивание и передачу прежнего результата до завершения нового запроса.
Значения выгружаются массивом даже при одном совпадении. Вид путей экспортирует массив строк. Можно сохранить до 20 выражений; загрузка сохранённого запроса не заменяет текущий документ.
$.store.book[?@.price < 10] выбирает недорогие книги. Условия объединяются через && и ||; доступны length, count, match, search и value. Движок разбирает синтаксис JSONPath, а не выполняет произвольный JavaScript.
Имена свойств, подстановочные знаки, рекурсивный поиск, отрицательные индексы, срезы и списки селекторов позволяют ограничить выборку. Повторный селектор может повторно вернуть узел. Автоматического удаления дубликатов и сортировки нет.
Корректный запрос без совпадений даёт []. Если найден узел со значением null, результат будет [null]. Оба варианта допустимы. Ошибка синтаксиса выводится отдельно и запрещает экспорт, а не маскируется пустым массивом.
Таблица добавляет по 50 совпадений, предпросмотр значения ограничен 1 200 символами. Копирование и скачивание включают весь принятый результат. Перед удалением сохранённого выражения показана одна удаляемая запись; действие можно один раз отменить.
JSON Pointer указывает на одно конкретное место. Тестер JSONPath позволяет выбирать несколько узлов с помощью фильтров и подстановочных знаков. Нормализованные пути в таблице записаны в синтаксисе JSONPath, а не RFC 6901.
$ обозначает корень всего документа. @ относится к текущему кандидату внутри фильтра. Поэтому @.price проверяет цену именно той книги, которая сейчас рассматривается, а не произвольное поле в корне.
Нет. Тестер JSONPath разбирает запрос RFC-парсером и не выполняет произвольный код JavaScript. Функции match и search всё же обрабатывают регулярные выражения и могут потребовать времени, поэтому для них действует общий лимит рабочего потока.
Результат — список выбранных узлов. Если узлов нет, список пуст: []. Узел со значением null существует и даёт [null]. Счётчик позволяет отличить отсутствие совпадений от найденного пустого значения.
Выражение идёт от корня к store, затем к массиву book, выбирает каждый его элемент через [*] и берёт поле author. Оно возвращает существующие значения этого поля, а не создаёт новые записи и не ищет author во всех ветвях документа.
Запрос обрабатывается неправильно?
Тестер JSONPath поможет сравнить книги после фильтра с ценами из рекурсивного поиска. Проверьте пути и выберите, нужен следующему инструменту исходный документ или только найденные значения.