Tester JSONPath
Uruchamiaj zapytania JSONPath na dowolnym dokumencie JSON. Zobacz dopasowane węzły i ich ścieżki w czasie rzeczywistym.
Wpisz dane powyżej, aby zobaczyć wynik.
Do czego to służy?
JSONPath ma się do JSON-a tak, jak XPath do XML-a — to język zapytań do wyciągania konkretnych wartości z zagnieżdżonego dokumentu bez pisania custom kodu. $.store.books[*].title mówi "daj mi każdy tytuł książki ze store"; $..price mówi "każdy price w dowolnym miejscu dokumentu". To narzędzie uruchamia zapytanie na żywo na dowolnym wklejonym JSON-ie, pokazując zarówno dopasowane wartości, jak i ścieżki, z których pochodzą, żebyś mógł iterować zapytanie, aż zwróci dokładnie to, czego chcesz.
Kiedy tego użyć
- Pisanie zapytania do narzędzia, które używa JSONPath: CLI w stylu jq, testy w Postmanie, Stedi, n8n albo AWS CloudWatch / Step Functions.
- Wyciąganie konkretnych pól z dużej odpowiedzi API bez pisania skryptu.
- Filtrowanie tablicy po wartości pola (np. "wszystkie zamówienia, gdzie total > 100").
- Sprawdzenie, czy głęboko zagnieżdżony path faktycznie rozwiązuje się do wartości, zanim wpiszesz to do kodu.
Szybka referencja składni
$— korzeń dokumentu..namealbo['name']— dziecko po nazwie...— descent rekurencyjny (dowolna głębokość).*— wildcard (dowolna właściwość albo element tablicy).[n]— indeks tablicy (ujemny liczy od końca).[start:end:step]— slice tablicy (w stylu Pythona).[a, b, c]— unia indeksów albo nazw.[?(@.field > 5)]— wyrażenie filtrujące.@= bieżący element; obsługuje== != < > <= >= && ||i=~ /regex/.
Częste pułapki
- JSONPath nie ma jednej oficjalnej speca. Pierwotny draft Stefana Gössnera był de facto referencją przez lata; RFC 9535 (luty 2024) wreszcie to wystandaryzowało. Implementacje delikatnie się różnią — to, co działa w Postmanie, może nie zadziałać w Jaegerze.
- Kropka vs nawias.
$.foo-barwygląda dla parsera jak "foo minus bar"; używaj$['foo-bar']dla nazw właściwości z myślnikami, kropkami albo spacjami. - Wyrażenia filtrujące mają tu smak JavaScript — to świadoma wygoda, ale nie pasuje ściśle do RFC 9535. Nie polegaj na tym, że filtry tego narzędzia zadziałają bajt-w-bajt w innej implementacji.
$..*zwraca każdy węzeł w drzewie (depth-first), co może być sporo. Przydaje się do eksploracji nieznanego dokumentu.- Numeryczne stringi.
{"1": "a"}— dostęp przez$['1']działa;$.1nie (liczby nie są poprawne jako nazwy properties po kropce). - Kolejność. JSON nie gwarantuje kolejności properties obiektów. Jeśli filtr zależy od kolejności, najpierw posortuj.