Тестер JSONPath
Запитуйте JSON виразами JSONPath і бачте кожен збіг разом із його шляхом
Про цей інструмент
Перевіряйте вирази JSONPath на власному JSON і бачте кожен збіг разом із його значенням і конкретним шляхом. Підтримується синтаксис, що покриває щоденні потреби: крапкова й дужкова нотація, індекси масивів (зокрема від’ємні), символи підстановки, об’єднання (['a','b']) і рекурсивний спуск ($..price).
Шлях біля кожного збігу — тихо корисна частина: запитайте $..id на глибокому документі, і кожен результат точно скаже, де він живе ($.data.items[3].id), готовий до вставляння в код. Це перетворює «десь у цьому місиві» на точну адресу.
Вирази-фільтри ([?(@.price < 10)]) ще не реалізовано — інструмент прямо про це каже, замість повертати хибні результати. Для структурного видобування, яке й становить більшість застосувань JSONPath, працює все.
Часті запитання
- Чим $.a.b відрізняється від $..b?
- $.a.b проходить одним точним маршрутом: ключ a в корені, а тоді ключ b усередині нього. $..b (рекурсивний спуск) знаходить кожен b будь-де в документі, на будь-якій глибині. Рекурсивний спуск потужний, але вміє дивувати — він зачіпає й ключі b, вкладені в те, про що ви не подумали.
- Як звернутися до ключів із пробілами чи дефісами?
- Дужковою нотацією з лапками: $['my key'] або $.data['content-type']. Крапкова нотація працює лише для ключів, що є коректними іменами на кшталт ідентифікаторів.
- Чи працюють від’ємні індекси масивів?
- Так — [-1] це останній елемент, [-2] передостанній, відповідно до домовленості, яку популяризував Python і перейняв RFC 9535. [0] лишається першим елементом.
- Чи стандартизовано JSONPath?
- Із 2024 року так — RFC 9535 визначає синтаксис і семантику. Реалізації, написані до нього, різняться в крайніх випадках (особливо у фільтрах та об’єднаннях), тож той самий вираз може поводитися по-різному в різних бібліотеках; перевіряйте на тій реалізації, з якою розгортаєтеся.