Перейти до вмісту

Екстрактор JSONPath

Видобувайте значення з JSON документів за допомогою виразів JSONPath або JSON Pointer.

Введення
Вихід

Екстрактор JSONPath

Вставте JSON документ, напишіть запит і цей інструмент повертатиме лише значення, що відповідають — без потреби писати скрипт або відкривати REPL, щоб видобути одне поле з великої структури даних. Підтримує два стилі запитів: вирази JSONPath на зразок $.users[*].email та посилання RFC 6901 JSON Pointer на зразок /users/0/email. Переключайтесь між ними за допомогою опції синтаксису залежно від того, що у вас є під рукою — документація API, рядок журналу чи звіт про помилку.

Підтримка JSONPath охоплює шаблони, які люди насправді використовують: точкову нотацію та доступ у дужках ($.user.name або $['user name'] для ключів із пробілами), символ підстановки [*] для розгортання кожного елемента масиву або кожного значення об'єкта, числові індекси включаючи від'ємні індекси, що відраховуються з кінця ($.items[-1]), і .. рекурсивний спуск для пошуку ключа на будь-якій глибині вкладеності ($..email). Відфільтровані вирази та діапазони зрізів не підтримуються — якщо ваш запит потребує умовної логіки, спочатку видобудьте батьківський масив, потім відфільтруйте його.

Два параметри форматують результат. Опція «Список рядків» виводить кожне знайдене значення на окремому рядку — рядки виводяться як є, об'єкти та масиви виводяться як компактний JSON — це зручно для прямої передачі іншому інструменту посторінкової обробки на зразок sort або dedupe. Опція «Масив JSON» обертає кожне збіг у один масив JSON, корисно коли вам потрібна чиста, розбираєма підмножина вихідного документа. Увімкніть опцію «Показати шлях для кожного збігу», щоб додати перед кожним результатом дозволений шлях, це допомагає коли кілька різних полів можуть правдоподібно пояснити дане значення.

Все працює локально у вашому браузері: документ, який ви вставляєте, та вираз, який ви пишете, ніколи не завантажуються нікуди. Це робить безпечним указання на реальні відповіді API, внутрішні експорти конфігурації або виписки з журналів production. Підрахунок під результатом точно показує, скільки збігів було знайдено, тому неочікуваний порожній результат легко відрізнити від запиту, який мовчазно нічого не повернув.

FAQ

Яка різниця між JSONPath та JSON Pointer?
Вирази JSONPath на зразок $.users[*].email можуть одночасно відповідати багатьом значенням, використовуючи символи підстановки та рекурсивний спуск. Посилання JSON Pointer на зразок /users/0/email завжди розв'язуються в не більше одного значення — це простіша, буквальна схема адресації, поширена в JSON Schema та корисних навантаженнях HTTP PATCH.
Які можливості JSONPath підтримуються?
Точкова нотація та доступ у дужках, символ підстановки [*], числові індекси масивів (включаючи від'ємні) та .. рекурсивний спуск для ключа на будь-якій глибині. Відфільтровані вирази на зразок [?(@.price<10)] та діапазони зрізів на зразок [0:2] не підтримуються.
Що відбувається, якщо вираз ніщо не відповідає?
Ви отримаєте порожній результат та підрахунок 0 збігів — це не вважається помилкою. Помилка показується лише для неправильного введення JSON або неправильно сформованого виразу.
Чи можу я побачити, звідки взялось кожне значення?
Увімкніть опцію «Показати шлях для кожного збігу» і кожен результат буде предварений точним шляхом, за яким він був знайдений, у тому ж синтаксисі що й запит — шляхи JSONPath на зразок $.users[0].email або вихідний вказівник для запитів JSON Pointer.
Завантажується ли мій JSON документ кудись?
Ні. Аналіз та обробка запитів відбуваються повністю у вашому браузері — документ та вираз ніколи не покидають ваш пристрій.