logo
GeekFormat

JSONPath Запрос

Запрашивайте JSON с помощью выражений JSONPath онлайн. Создано для инженеров по тестированию API и аналитиков данных. Точно извлекайте, фильтруйте и находите данные из массивных глубоко вложенных JSON с помощью стандартных выражений JSONPath. Поддерживает подсветку синтаксиса в реальном времени, умные подсказки об ошибках и переключение двойного вида JSON/таблица. Идеально подходит для утверждений Postman API автоматизации тестирования, сложной очистки данных журналов и извлечения полей на фронтенде. Чистая локальная обработка, быстро и безопасно.

Похожие

Варианты использования

  • Извлечение конкретных полей из глубоко вложенных ответов API при отладке интерфейсов
  • Создание утверждений для автоматизированных тестов API в Postman перед внедрением в код
  • Фильтрация и очистка больших объемов данных журналов для поиска аномальных записей
  • Извлечение наборов данных из сложных JSON-структур для анализа в табличных редакторах
  • Прототипирование JSONPath выражений для использования в нагрузочных тестах JMeter
  • Быстрый поиск и обнаружение ошибок в структуре ответов сторонних API при интеграции
  • Извлечение полей из конфигурационных JSON-файлов фронтенда для рефакторинга
  • Фильтрация массивов по числовым или строковым условиям при анализе данных
  • Изучение синтаксиса JSONPath на встроенных примерах для начинающих разработчиков
  • Проверка структуры и содержимого вебхук-уведомлений перед обработкой
  • Сравнение разных версий ответов API путем извлечения и сравнения ключевых полей
  • Подготовка данных из ответов API для документации или отчетов

Функции

  • Точное извлечение данных: поддерживает стандартный синтаксис JSONPath, включая доступ к свойствам, индексы массивов, подстановочные знаки и операции среза для точного нацеливания на данные
  • Умная фильтрация и утверждения: поддерживает фильтры ?() с операторами ==/!=/>/</>=/<= для условной фильтрации данных, значительно повышая эффективность тестирования API
  • Двойной интерактивный вид: переключение между исходным видом JSON и структурированным табличным представлением в один клик для удобного просмотра и экспорта результатов извлечения
  • Подсветка синтаксиса в реальном времени: обеспечивает подсветку синтаксиса и подсказки об ошибках в реальном времени, помогая разработчикам быстро исправлять выражения запросов
  • Локальная высокоскоростная обработка: чистые локальные вычисления в браузере с редактором CodeMirror, обеспечивающие абсолютную безопасность чувствительных тестовых данных и бизнес-конфиденциальности
  • 8 встроенных примеров: готовые примеры для распространенных сценариев, помогающие быстро освоить синтаксис и немедленно начать работу
  • Автоисправление ошибок JSON: встроенное автоматическое обнаружение и исправление распространенных синтаксических ошибок JSON с точными указаниями позиций
  • Оптимизированный debounce 400 мс: интеллектуальная задержка выполнения для предотвращения лишних вычислений при быстром вводе, обеспечивающая плавную работу
  • Поддержка горячих клавиш: стандартные сочетания клавиш редактора для поиска, замены, отмены, повтора и других операций без использования мыши
  • Локальная история из 200 записей: автоматическое сохранение последних 200 запросов в localStorage для быстрого доступа к предыдущим рабочим сессиям
  • Индекс массива [-1] (последний): удобный доступ к последним элементам массива с помощью отрицательных индексов без предварительного вычисления длины
  • Срез массива [start:end]: гибкое извлечение диапазонов элементов массива с помощью синтаксиса срезов, знакомого по языкам программирования
  • Подстановочный знак *: сопоставление любых полей или элементов на любом уровне иерархии для широкомасштабного извлечения данных
  • Переключение JSON/таблица: двойной вид результатов для разных сценариев анализа — структурированный JSON или наглядное табличное представление

Как использовать

  1. Вставьте JSON-контент в левую панель редактора или загрузите один из 8 встроенных примеров
  2. Введите выражение JSONPath в поле запроса вверху (например, $.store.book[0].title)
  3. При необходимости включите автоматическое исправление ошибок JSON, если в исходных данных есть синтаксические проблемы
  4. Просматривайте результаты в правой панели; переключайтесь между видом JSON и табличным представлением по необходимости
  5. Копируйте результат, используйте горячие клавиши для быстрого редактирования, или сохраните запрос в локальной истории

Часто задаваемые вопросы

Как использовать JSONPath для точного извлечения определенных полей из глубоко вложенного JSON?

Просто введите стандартное выражение JSONPath в поле запроса (например, `$.store.book[0].title`), и инструмент быстро найдет и извлечет глубокие данные через иерархический обход. По сравнению с ручным разворачиванием больших JSON-файлов этот подход значительно повышает эффективность поиска данных, что делает его идеальным для обработки сложных ответов API.

Поддерживаются ли подстановочные знаки или фильтры для сложных условных запросов?

Полностью поддерживается. Вы можете использовать подстановочный знак (*) для сопоставления любого поля или фильтры ?() для расширенной фильтрации. Например, ввод `$.store.book[?(@.price < 10)]` мгновенно отфильтрует все книги с ценой ниже 10. Инструмент подсвечивает совпадающие результаты в реальном времени и поддерживает удобный просмотр в табличном виде.

Как этот инструмент может помочь с автоматизацией тестирования API и утверждениями?

При автоматизации тестирования API вы можете вставить JSON ответа API в инструмент и написать выражения JSONPath в качестве тестовых утверждений. Быстро проверяя, соответствует ли возвращенный результат ожиданиям (например, проверяя, равен ли `$.code` значению 200), вы можете быстро устранять логические ошибки интерфейса, что делает его мощным помощником в рабочих процессах тестирования Postman или JMeter.

Как получить доступ к последнему элементу массива?

Используйте отрицательный индекс [-1] для доступа к последнему элементу массива, [-2] для предпоследнего и так далее. Это гораздо удобнее, чем сначала вычислять длину массива, особенно при работе с динамическими ответами API.

Как использовать срез массива [start:end]?

Срез массива работает аналогично массивам JavaScript: `$.items[0:3]` возвращает первые 3 элемента, `$.items[2:5]` — элементы с индекса 2 по 4. Если опустить start, отсчет идет с начала; если опустить end — до конца массива.

Какие операторы сравнения поддерживаются в фильтрах ?()?

Поддерживаются все основные операторы сравнения: == (равно), != (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно). Вы можете комбинировать их для точной фильтрации данных по числовым или строковым значениям.

Сколько встроенных примеров доступно?

Инструмент содержит 8 встроенных примеров, охватывающих наиболее распространенные сценарии использования: извлечение полей, фильтрация по условию, работа с массивами, подстановочные знаки, срезы и многое другое. Вы можете загрузить любой пример одним кликом, чтобы быстро изучить синтаксис.

Что произойдет, если мой JSON содержит синтаксические ошибки?

Инструмент имеет встроенную функцию автоисправления ошибок JSON. Он автоматически обнаруживает распространенные проблемы: отсутствующие кавычки, лишние запятые, одинарные кавычки вместо двойных — и предлагает исправления. Ошибки подсвечиваются в реальном времени с указанием точной позиции.

Как работает задержка debounce при вводе?

Используется оптимизированная задержка 400 мс. Это означает, что запрос выполняется только после того, как вы перестанете печатать на 400 мс, что предотвращает лишние вычисления при быстром вводе и обеспечивает плавную работу без подтормаживаний.

Какие горячие клавиши поддерживаются?

Поддерживаются стандартные горячие клавиши редактора CodeMirror: Ctrl/Cmd + F для поиска, Ctrl/Cmd + H для замены, Ctrl/Cmd + Z для отмены, Ctrl/Cmd + Shift + Z для повтора, Ctrl/Cmd + A для выделения всего. Полный список доступен в справке редактора.

Сохраняется ли история запросов локально?

Да, инструмент автоматически сохраняет последние 200 запросов в localStorage вашего браузера. История остается даже после закрытия и повторного открытия вкладки, что удобно для возврата к предыдущим рабочим сессиям.

Данные отправляются на сервер?

Нет. Вся обработка происходит исключительно локально в вашем браузере с использованием редактора CodeMirror. Данные никогда не загружаются на какие-либо серверы, что гарантирует полную конфиденциальность при работе с чувствительными данными API, токенами или бизнес-информацией.

Можно ли переключаться между JSON и табличным представлением?

Да, инструмент поддерживает двойной вид. В табличном представлении результаты запроса отображаются в структурированном виде с колонками и строками, что особенно удобно при извлечении массивов объектов — вы можете легко просматривать и сравнивать множество записей.

Как использовать это в Postman для утверждений?

Сначала прототипируйте и отладьте выражение JSONPath в этом инструменте, затем скопируйте его в тесты Postman. Синтаксис совместим с реализацией JSONPath, используемой в Postman для утверждений pm.response.json(), что позволяет быстро переносить готовые выражения.

Подходит ли для тестирования в JMeter?

Конечно. Выражения JSONPath, разработанные здесь, можно напрямую использовать в компонентах JSON Extractor и JSON Assertion плагина JMeter. Это ускоряет создание тестовых планов, позволяя сначала визуально проверить правильность выражения перед внедрением в нагрузочные тесты.

Что такое JSONPath и этот онлайн-инструмент

JSONPath — это язык запросов и выражений для извлечения данных из JSON-структур, аналогичный XPath для XML. Он позволяет точно навигировать по глубоко вложенным объектам и массивам, извлекать конкретные поля, фильтровать элементы по условиям и получать нужные фрагменты данных без написания циклов или обхода вручную. JSONPath был предложен Стефаном Гёсснером в 2007 году и с тех пор стал де-факто стандартом для работы с JSON в тестировании API, анализе данных и обработке структурированных документов.

Этот онлайн-инструмент представляет собой удобный интерфейс для выполнения запросов JSONPath прямо в браузере. Он разработан специально для инженеров по тестированию API, аналитиков данных и frontend-разработчиков, которым часто приходится работать со сложными структурами ответов API, данными журналов и конфигурационными файлами. Вместо написания кода или использования громоздких библиотек вы можете просто вставить JSON, ввести выражение и мгновенно увидеть результат.

Инструмент поддерживает ядро практического синтаксиса, которое покрывает подавляющее большинство повседневных задач. Вы можете использовать точный доступ к свойствам через точку (например, $.store.book.title), индексацию массивов, включая отрицательные индексы для доступа с конца массива ([-1] для последнего элемента), подстановочный знак * для сопоставления любых полей, срезы массивов [start:end] для извлечения диапазонов и условные фильтры ?() с полным набором операторов сравнения ==, !=, >, <, >=, <=. Этого набора достаточно для решения более 90% типичных задач извлечения данных.

Одной из ключевых особенностей является двойной вид результатов: вы можете переключаться между классическим представлением JSON и структурированным табличным видом. Табличное представление особенно удобно при работе с массивами объектов — результаты отображаются в виде колонок и строк, что упрощает визуальный анализ, сравнение значений и подготовку данных для отчётов или дальнейшей обработки. Переключение между режимами происходит в один клик без перезапроса.

Для повышения продуктивности в инструмент встроено 8 готовых примеров, охватывающих распространённые сценарии использования. Если вы новичок в JSONPath, вы можете загрузить любой пример одним кликом, изучить структуру выражения и сразу увидеть результат. При вводе используется оптимизированная задержка debounce в 400 миллисекунд — запрос выполняется только после того, как вы остановите печать, что предотвращает подтормаживания и лишние вычисления при быстром наборе текста.

Редактор построен на основе CodeMirror, обеспечивая профессиональную работу с кодом: подсветка синтаксиса в реальном времени, нумерация строк, умные отступы и поддержка стандартных горячих клавиш для поиска, замены, отмены и повтора действий. Инструмент также включает встроенную функцию автоисправления ошибок JSON — он обнаруживает распространённые проблемы (отсутствие кавычек, лишние запятые, одинарные кавычки) и подсвечивает их с указанием точной позиции, помогая быстро подготовить данные к запросу.

Вся обработка происходит исключительно локально в вашем браузере — никакие данные не отправляются на сервер. Это критически важно при работе с чувствительными данными: токенами авторизации, персональными данными пользователей, внутренними бизнес-данными или конфиденциальными ответами API. Для удобства повторного использования автоматически сохраняется локальная история из 200 последних запросов в хранилище localStorage вашего браузера — история остаётся даже после закрытия вкладки.

Этот инструмент широко используется при работе с Postman и JMeter: вы можете быстро прототипировать и отладить выражение JSONPath здесь, а затем скопировать его в тесты Postman (для pm.response.json()) или в компоненты JSON Extractor/JSON Assertion в JMeter. Важно отметить, что данная реализация фокусируется на ядре практического синтаксиса, покрывающем более 90% повседневных сценариев разработки: рекурсивный спуск (..), скриптовые выражения и множественные комбинации условий в данный момент не поддерживаются, что намеренно сделано для обеспечения скорости, надёжности и предсказуемости поведения.

术语表

$
Корневой элемент JSONPath, представляющий весь объект или массив в корне документа. С него начинается любое абсолютное выражение пути.
@
Текущий узел, используемый внутри выражений фильтра ?() для ссылки на свойства текущего обрабатываемого элемента.
*
Подстановочный знак, соответствующий любому полю в объекте или любому элементу в массиве на текущем уровне иерархии.
.
Оператор доступа к дочернему свойству, используется для навигации по вложенным объектам, например $.store.book.
[]
Оператор индекса массива, используется для доступа к элементам по индексу, например [0] для первого элемента или [-1] для последнего.
[start:end]
Оператор среза массива, извлекает диапазон элементов с индекса start до end (не включая end), подобно срезам в Python или JavaScript.
?()
Оператор выражения фильтра, применяет условие к каждому элементу массива или объекта и возвращает только те, которые удовлетворяют условию.
==
Оператор равенства в фильтрах, проверяет, равно ли значение свойства указанному значению.
!=
Оператор неравенства в фильтрах, проверяет, отличается ли значение свойства от указанного значения.
>
Оператор 'больше' в фильтрах, используется для числовых сравнений: проверяет, превышает ли значение свойства указанный порог.
>=
Оператор 'больше или равно' в фильтрах, проверяет, что значение свойства больше указанного или равно ему.
CodeMirror
Высокопроизводительный редактор кода, используемый в инструменте для обеспечения подсветки синтаксиса, нумерации строк и удобного редактирования.

Справочник базового синтаксиса JSONPath

Ниже приведены основные выражения синтаксиса JSONPath, поддерживаемые этим инструментом, с примерами использования.

СинтаксисПримерОписание
$$Корневой узел, представляет весь документ
.property$.storeДоступ к дочернему свойству объекта
[index]$.books[0]Доступ к элементу массива по индексу (начиная с 0)
[-1]$.books[-1]Доступ к последнему элементу массива
*$.store.*Подстановочный знак, соответствует любому полю/элементу
[start:end]$.books[0:3]Срез массива, элементы с индекса start до end-1
?()$.books[?(@.price<10)]Условный фильтр, возвращает соответствующие элементы

Операторы сравнения в фильтрах

Все поддерживаемые операторы сравнения для использования внутри выражений фильтра ?().

ОператорПримерОписание
==?(@.category=='fiction')Равно — точное совпадение значения
!=?(@.status!='draft')Не равно — исключает указанное значение
>?(@.price>20)Больше — для числовых сравнений
<?(@.stock<5)Меньше — для числовых сравнений
>=?(@.rating>=4.5)Больше или равно
<=?(@.age<=18)Меньше или равно

Горячие клавиши редактора

Стандартные сочетания клавиш редактора CodeMirror для повышения продуктивности.

Сочетание (Windows/Linux)MacДействие
Ctrl + FCmd + FПоиск в редакторе
Ctrl + HCmd + HПоиск и замена
Ctrl + ZCmd + ZОтменить действие
Ctrl + Shift + ZCmd + Shift + ZПовторить действие
Ctrl + ACmd + AВыделить всё
Ctrl + /Cmd + /Переключить комментарий (в JSON не поддерживается)

Privacy & Security

Все запросы JSONPath, обработка JSON и вычисления в этом инструменте выполняются исключительно локально в вашем браузере с использованием редактора CodeMirror. Данные никогда не загружаются на какие-либо серверы, не записываются и не кэшируются удалённо. Инструмент безопасен даже при обработке ответов API, содержащих секреты, токены или пользовательскую информацию. Данные автоматически очищаются при закрытии или обновлении страницы; локальная история хранится только в вашем собственном хранилище localStorage.

Authoritative References

Troubleshooting

Выражение возвращает пустой результат, хотя данные существуют

Проверьте правильность написания пути: чувствительность к регистру символов, правильность вложенности, наличие опечаток в названиях полей. Помните, что в JSONPath нет поддержки рекурсивного спуска (..), поэтому нужно указывать полный путь до каждого уровня. Попробуйте сначала протестировать более простое выражение, постепенно усложняя его.

Фильтр ?() не работает как ожидается

Убедитесь, что вы используете правильные операторы сравнения, а строковые значения заключены в одинарные кавычки. Проверьте тип данных: числовые значения не нужно брать в кавычки. Например, ?(@.price<10) правильно для чисел, а ?(@.category=='fiction') — для строк.

JSON отображается с ошибками синтаксиса

Инструмент имеет функцию автоисправления ошибок JSON, но если ошибка сложная, попробуйте сначала использовать отдельный инструмент JSON Repair. Наиболее частые ошибки: одинарные кавычки вместо двойных, отсутствие кавычек у ключей, лишние запятые после последнего элемента, незакрытые скобки.

Рекурсивный спуск .. не работает

Это ожидаемое поведение. Данная реализация фокусируется на ядре практического синтаксиса, покрывающем более 90% повседневных сценариев разработки. Рекурсивный спуск (..), скриптовые выражения и множественные комбинации условий в данный момент не поддерживаются. Используйте точные пути с явным указанием уровней вложенности.