Czym jest JSONPath i po co mi tester?
Masz dokument JSON. Może to być odpowiedź z API, plik konfiguracyjny, linia logu, cokolwiek. W środku siedzi konkretny kawałek danych, który chcesz wyjąć: email trzeciego użytkownika, wszystkie ceny poniżej 10 złotych, wszystkie adresy obrazków zagnieżdżone 4 poziomy w dół. Pętla w JavaScript zadziała, ale zajmuje miejsce i czas. JSONPath to skrót: mały język zapytań stworzony do JSON-a, wzorowany na XPath dla XML. Jedna linijka, masz wartości.
Tester liczy wyrażenie na żywo podczas pisania. Wklejasz JSON po lewej, wpisujesz JSONPath typu `$.store.book[*].title` po prawej, od razu widzisz pasujące wartości. Nic nie wychodzi z przeglądarki, JSON zostaje na Twoim komputerze, co ma znaczenie, gdy debugujesz produkcyjną odpowiedź z prawdziwymi danymi użytkowników.
W zestawie masz klasyczny przykład księgarni Goessnera (JSON, którego używa każdy poradnik o JSONPath), więc ściągawka i przykładowe zapytania działają od razu. Klikasz przykład, podmieniasz wyrażenie, widzisz, co się zmienia. Szybciej nauczysz się składni bawiąc się działającym zapytaniem, niż czytając dokumentację.
Jak używać
- Wklej JSON w lewe okno. Kliknij Sformatuj, żeby ładnie wyrównać (wcięcia po 4 spacje, czytelnie). Jeśli JSON jest popsuty (brak przecinka, niedomknięty nawias) zobaczysz czerwoną plakietkę Niepoprawny JSON nad polem: napraw i plakietka znika.
- Wpisz wyrażenie JSONPath w pole po prawej. Wynik aktualizuje się przy każdym naciśnięciu klawisza, nie ma przycisku „uruchom". Zacznij od `$` (korzeń dokumentu) i schodź w głąb przez `.pole` albo `[indeks]`. Przykłady poniżej to klikalne punkty startowe.
- Panel Wynik pokazuje pasujące wartości jako JSON. Liczba dopasowań widoczna w prawym górnym rogu, brak dopasowania pokazuje napis „brak dopasowań" zamiast pustej tablicy, dzięki temu wiesz, że zapytanie wykonało się bez błędu.
- Przełącz Pokazuj ścieżki, żeby zamiast wartości zobaczyć ścieżki JSON (np. `$.store.book[0].title`). Przydaje się, gdy chcesz wiedzieć gdzie coś jest, a nie co to jest.
- Kliknij Kopiuj, żeby wrzucić wynik do schowka. Kliknij Załaduj przykład, żeby w każdej chwili wrócić do dokumentu księgarni. Kliknij Wyczyść, żeby wyrzucić oba pola.
- Użyj ściągawki na dole: każdy wiersz jest klikalny, przykład sam się ładuje do pola zapytania (i resetuje JSON do próbki), żebyś mógł zobaczyć, co dokładnie robi dany operator.
Kiedy się przydaje
Sześć konkretnych sytuacji, w których JSONPath bije pisanie pętli ręcznie:
- Debugowanie odpowiedzi z API. Uderzasz w endpoint, dostajesz 80 KB zagnieżdżonego JSON-a i potrzebujesz tylko ID użytkowników z drugiej strony wyników. Wpisujesz `$.data.users[*].id` i masz. Bez pisania skryptu, bez otwierania w IDE, bez kopiowania fragmentów.
- Wyciąganie pól z pliku konfiguracyjnego. Masz 2000-linijkowy manifest Kubernetes albo Helm values.yaml (skonwertowany do JSON) i chcesz każdy obraz kontenera używany w klastrze. `$..spec.containers[*].image` i gotowe. Rekurencja (`..`) nie obchodzi, jak głęboko są zagnieżdżone kontenery.
- Filtrowanie po warunku. Masz katalog produktów z 400 pozycjami i potrzebujesz tych poniżej 10 złotych. `$.products[?(@.price < 10)]` zwraca wszystkie, bez SQL-a, bez Excela, tylko wklejasz i piszesz. Łączysz przez `&&` dla wielu warunków: `[?(@.price < 10 && @.inStock)]`.
- Nauka składni przed użyciem w kodzie. Wiele bibliotek przyjmuje JSONPath na wejściu: alternatywy dla jq, skrypty testowe w Postmanie, panele w Grafanie, Azure Logic Apps, AWS Step Functions, trasy Camela. Testujesz wyrażenie tutaj, potem wklejasz do docelowego narzędzia z pewnością, że działa.
- Budowanie reguł automatyzacji. Konfigurujesz Zapier, n8n, Make, Pipedream: większość z nich ma krok „filter JSONPath". Szkicujesz filtr tutaj na prawdziwym payloadzie z webhooka, potem wrzucasz działające wyrażenie do reguły.
- Szybka eksploracja danych. Wyeksportowałeś dane skądś (Notion, Airtable, Stripe, GitHub API) jako JSON i chcesz szybko odpowiedzieć na pytanie. „Ile faktur powyżej 2000 zł w tym zestawie?" `$..invoices[?(@.amount > 2000)]`, policz dopasowania, gotowe. Szybsze niż triki w arkuszu.