DevToolPal
PL

Tester JSONPath

Wykonaj zapytanie JSONPath na JSON i zobacz każdą pasującą wartość wraz ze ścieżką – z filtrami i funkcjami (RFC 9535).

Działa lokalnie, nic nie jest wysyłane

Opcje

Pokaż

JSON

0 znaków · 0 B

Dopasowania

0 znaków · 0 B

Do czego służy

JSONPath to język zapytań dla JSON, podobny do XPath dla XML. Zapytanie takie jak $.store.book[*].title przechodzi przez dokument i wybiera potrzebne wartości. To narzędzie wykonuje wyrażenie JSONPath na wklejonym JSON i wypisuje wszystkie dopasowania jako tablicę JSON: znalezione wartości, ich znormalizowane ścieżki (np. $['store']['book'][0]['title']) albo jedno i drugie.

Narzędzie jest zgodne z RFC 9535, standardem IETF opublikowanym w 2024 roku, więc wyniki zgadzają się z nowoczesnymi bibliotekami dla JavaScriptu, Javy, Pythona, Go i innych języków. Przydaje się do sprawdzenia zapytania przed wpisaniem go do kodu, do ustalenia, dlaczego filtr nic nie zwraca, albo do wyciągnięcia kilku pól z dużej odpowiedzi API.

Jak używać

  1. Wklej JSON w pole JSON, wgraj plik .json lub kliknij Przykład, aby wczytać klasyczny dokument księgarni.
  2. Wpisz zapytanie w polu Wyrażenie JSONPath. Dopasowania aktualizują się w trakcie pisania.
  3. Wybierz, co Pokaż: wartości, ścieżki lub pary ścieżka/wartość.
  4. Skopiuj lub pobierz wynik. Przy błędzie składni podawany jest znak, na którym analiza się zatrzymała.

Ściągawka ze składni

WyrażenieZnaczenie
$Korzeń dokumentu
.name lub ['name']Członek obiektu
[0], [-1]Element tablicy (ujemne liczone od końca)
[1:3], [::2]Wycinek: początek, koniec (bez niego) i krok
*Wszyscy członkowie lub elementy
..namename na dowolnej głębokości
[?@.price < 10]Dzieci, dla których filtr jest prawdziwy; @ to bieżący element

Filtry mogą łączyć warunki przez &&, || i !, porównywać z innymi częściami dokumentu przez $ i wywoływać funkcje: length(@.tags) > 2, count(@.items[*]) == 0, match(@.code, '[A-Z]{3}'), gdy cały ciąg ma pasować do wyrażenia regularnego, oraz search(@.title, 'Ring') dla dopasowania w dowolnym miejscu.

Przykład

Dla przykładowej księgarni to zapytanie wybiera tytuły książek tańszych niż 10:

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

i zwraca:

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

Zmień je na $..book[?@.isbn].author, aby wypisać autorów książek z numerem ISBN, albo na $..price, aby zebrać wszystkie ceny w sklepie, łącznie z ceną roweru.

FAQ

› Jaka składnia JSONPath jest obsługiwana?

Standardowa składnia RFC 9535: nazwy członków z kropką i w nawiasach kwadratowych, symbole wieloznaczne, indeksy tablic (także ujemne), wycinki, wyszukiwanie na dowolnej głębokości przez .., filtry z porównaniami i && || ! oraz funkcje length(), count(), match(), search() i value(). Starsza forma ?(@.price < 10) też działa, bo nawiasy tylko grupują.

› Dlaczego moje zapytanie zwraca pustą tablicę?

Pusta tablica oznacza, że zapytanie jest poprawne, ale nic nie pasuje. Sprawdź nazwy członków (wielkość liter ma znaczenie) i to, czy wartość jest tablicą, czy obiektem. Szerokie zapytanie, np. $..*, z opcją Pokaż ustawioną na Ścieżki pokaże zawartość dokumentu.

› Czy mogę używać wyrażeń skryptowych, takich jak [(@.length-1)]?

Nie. Wyrażenia skryptowe wykonują dowolny kod i nie należą do standardu. Użyj ujemnego indeksu: [-1] to ostatni element, a [-2:] dwa ostatnie.

› Czy mój JSON jest wysyłany na serwer?

Nie. Zapytanie jest analizowane i wykonywane w przeglądarce przez kod strony; nic nie jest przesyłane.