DevToolPal
UK

Перевірка JSONPath

Виконайте запит JSONPath до JSON і перегляньте всі знайдені значення та їхні шляхи, з фільтрами й функціями (RFC 9535).

Працює локально, нічого не завантажується на сервер

Параметри

Показати

JSON

0 симв. · 0 B

Збіги

0 симв. · 0 B

Що це таке

JSONPath — мова запитів для JSON, приблизно те саме, що XPath для XML. Запит на кшталт $.store.book[*].title проходить документом і вибирає потрібні значення. Цей інструмент виконує вираз JSONPath над вставленим JSON і виводить усі збіги як масив JSON: знайдені значення, їхні нормалізовані шляхи (наприклад, $['store']['book'][0]['title']) або і те, і інше.

Інструмент відповідає RFC 9535 — стандарту IETF, опублікованому 2024 року, тож результати збігаються із сучасними бібліотеками для JavaScript, Java, Python, Go та інших мов. Користуйтеся ним, щоб перевірити запит перед тим, як додати його в код, з’ясувати, чому фільтр нічого не знаходить, або витягти кілька полів із великої відповіді API.

Як користуватися

  1. Вставте JSON у поле JSON, завантажте файл .json або натисніть Приклад, щоб відкрити класичний документ книгарні.
  2. Введіть запит у поле Вираз JSONPath. Збіги оновлюються під час введення.
  3. Виберіть, що Показати: значення, шляхи або пари шлях/значення.
  4. Скопіюйте або завантажте результат. У разі синтаксичної помилки вказується символ, на якому розбір зупинився.

Шпаргалка із синтаксису

ВиразЗначення
$Корінь документа
.name або ['name']Член об’єкта
[0], [-1]Елемент масиву (від’ємні рахуються з кінця)
[1:3], [::2]Зріз: початок, кінець (не включно) і крок
*Усі члени або елементи
..namename на будь-якій глибині
[?@.price < 10]Дочірні елементи, для яких фільтр істинний; @ — поточний елемент

У фільтрах можна поєднувати умови через &&, || і !, порівнювати з іншими частинами документа через $ і викликати функції: length(@.tags) > 2, count(@.items[*]) == 0, match(@.code, '[A-Z]{3}') — увесь рядок має відповідати регулярному виразу, search(@.title, 'Ring') — збіг у будь-якому місці рядка.

Приклад

Для прикладу книгарні цей запит вибирає назви книжок, дешевших за 10:

$.store.book[?@.price < 10].title

і повертає:

["Sayings of the Century", "Moby Dick"]

Замініть його на $..book[?@.isbn].author, щоб отримати авторів книжок з ISBN, або на $..price, щоб зібрати всі ціни в магазині, разом із ціною велосипеда.

Часті запитання

› Який синтаксис JSONPath підтримується?

Стандартний синтаксис RFC 9535: імена членів через крапку та у квадратних дужках, символ підстановки, індекси масивів (зокрема від’ємні), зрізи, пошук на будь-якій глибині через .., фільтри з порівняннями та && || !, а також функції length(), count(), match(), search() і value(). Старий запис ?(@.price < 10) теж працює, бо дужки лише групують.

› Чому запит повертає порожній масив?

Порожній масив означає, що запит коректний, але нічого не знайдено. Перевірте імена членів (регістр має значення) і те, чи значення є масивом або об’єктом. Широкий запит на кшталт $..* у режимі «Шляхи» покаже, що є в документі.

› Чи можна використовувати скриптові вирази на кшталт [(@.length-1)]?

Ні. Скриптові вирази виконують довільний код і не входять до стандарту. Використовуйте від’ємний індекс: [-1] — останній елемент, [-2:] — два останні.

› Чи надсилається мій JSON на сервер?

Ні. Запит розбирається й виконується у вашому браузері власним кодом сторінки; нічого не завантажується.