logo
GeekFormat

Zapytanie JSONPath

Wykonuj zapytania JSON za pomocą wyrażeń JSONPath online. Stworzone dla inżynierów testów API i analityków danych. Precyzyjnie ekstrahuj, filtruj i lokalizuj dane z masywnych, głęboko zagnieżdżonych JSON przy użyciu standardowych wyrażeń JSONPath. Obsługuje podświetlanie składni w czasie rzeczywistym, inteligentne komunikaty o błędach i przełączanie podwójnego widoku JSON/tabela. Idealne do asercji automatyzacji testów API Postman, czyszczenia złożonych danych logów i ekstrakcji pól frontendowych. Czyste przetwarzanie lokalne, szybkie i bezpieczne.

Powiązane Rekomendacje

Przypadki użycia

  • Ekstrakcja określonych pól z głęboko zagnieżdżonych odpowiedzi API podczas debugowania interfejsów
  • Tworzenie asercji dla zautomatyzowanych testów API w Postman przed wdrożeniem w kodzie
  • Filtrowanie i czyszczenie dużych ilości danych logów w celu wyszukiwania anomalnych rekordów
  • Ekstrakcja zestawów danych ze złożonych struktur JSON do analizy w edytorach tabelarycznych
  • Prototypowanie wyrażeń JSONPath do użycia w testach obciążeniowych JMeter
  • Szybkie wyszukiwanie i lokalizowanie błędów w strukturze odpowiedzi zewnętrznych API podczas integracji
  • Ekstrakcja pól z konfiguracyjnych plików JSON frontendowych do refaktoryzacji
  • Filtrowanie tablic według warunków liczbowych lub ciągów znaków podczas analizy danych
  • Nauka składni JSONPath na wbudowanych przykładach dla początkujących programistów
  • Sprawdzanie struktury i zawartości powiadomień webhook przed przetwarzaniem
  • Porównywanie różnych wersji odpowiedzi API poprzez ekstrakcję i porównywanie kluczowych pól
  • Przygotowywanie danych z odpowiedzi API do dokumentacji lub raportów

Funkcje

  • Precyzyjna ekstrakcja danych: obsługuje standardową składnię JSONPath, w tym dostęp do właściwości, indeksy tablic, symbole wieloznaczne i operacje wycinków dla precyzyjnego celowania w dane
  • Inteligentne filtrowanie i asercje: obsługuje filtry ?() z operatorami ==/!=/>/</>=/<= do warunkowego filtrowania danych, znacznie poprawiając efektywność testowania API
  • Podwójny interaktywny widok: przełączanie między surowym widokiem JSON a strukturyzowanym widokiem tabeli jednym kliknięciem dla wygodnego przeglądania i eksportu wyników ekstrakcji
  • Podświetlanie składni w czasie rzeczywistym: zapewnia podświetlanie składni i komunikaty o błędach w czasie rzeczywistym, pomagając programistom szybko poprawiać wyrażenia zapytań
  • Lokalne szybkie przetwarzanie: czyste lokalne obliczenia w przeglądarce z edytorem CodeMirror, zapewniające absolutne bezpieczeństwo wrażliwych danych testowych i prywatności biznesowej
  • 8 wbudowanych przykładów: gotowe przykłady dla powszechnych scenariuszy, pomagające szybko opanować składnię i natychmiast rozpocząć pracę
  • Automatyczna naprawa błędów JSON: wbudowane automatyczne wykrywanie i naprawa powszechnych błędów składniowych JSON z dokładnymi wskazówkami pozycji
  • Zoptymalizowany debounce 400 ms: inteligentne opóźnienie wykonywania zapobiegające niepotrzebnym obliczeniom podczas szybkiego wprowadzania, zapewniające płynną pracę
  • Obsługa skrótów klawiszowych: standardowe skróty klawiszowe edytora do wyszukiwania, zamiany, cofania, ponawiania i innych operacji bez użycia myszy
  • Lokalna historia z 200 wpisami: automatyczne zapisywanie ostatnich 200 zapytań w localStorage dla szybkiego dostępu do poprzednich sesji roboczych
  • Indeks tablicy [-1] (ostatni): wygodny dostęp do ostatnich elementów tablicy za pomocą ujemnych indeksów bez wcześniejszego obliczania długości
  • Wycinek tablicy [start:end]: elastyczna ekstrakcja zakresów elementów tablicy za pomocą składni wycinków znanej z języków programowania
  • Symbol wieloznaczny *: dopasowanie dowolnych pól lub elementów na dowolnym poziomie hierarchii do szerokozakresowej ekstrakcji danych
  • Przełączanie JSON/tabela: podwójny widok wyników dla różnych scenariuszy analizy — strukturyzowany JSON lub przejrzysty widok tabeli

Jak Używać

  1. Wklej zawartość JSON do lewego panelu edytora lub załaduj jeden z 8 wbudowanych przykładów
  2. Wprowadź wyrażenie JSONPath w polu zapytania na górze (np. $.store.book[0].title)
  3. W razie potrzeby włącz automatyczną naprawę błędów JSON, jeśli dane źródłowe mają problemy składniowe
  4. Przeglądaj wyniki w prawym panelu; przełączaj się między widokiem JSON a widokiem tabeli w razie potrzeby
  5. Kopiuj wynik, używaj skrótów klawiszowych do szybkiego edytowania lub zapisz zapytanie w lokalnej historii

Często Zadawane Pytania

Jak użyć JSONPath do precyzyjnej ekstrakcji określonych pól z głęboko zagnieżdżonego JSON?

Po prostu wprowadź standardowe wyrażenie JSONPath w polu zapytania (np. `$.store.book[0].title`), a narzędzie szybko zlokalizuje i wyekstrahuje głębokie dane poprzez hierarchiczne przeszukiwanie. W porównaniu do ręcznego rozwijania dużych plików JSON, to podejście znacznie poprawia efektywność lokalizacji danych, co czyni je idealnym do obsługi złożonych odpowiedzi API.

Czy obsługuje symbole wieloznaczne lub filtry dla złożonych zapytań warunkowych?

Pełna obsługa. Możesz użyć symbolu wieloznacznego (*) do dopasowania dowolnego pola lub filtrów ?() do zaawansowanego filtrowania. Na przykład wprowadzenie `$.store.book[?(@.price < 10)]` natychmiast odfiltruje wszystkie książki o cenie poniżej 10. Narzędzie podświetla pasujące wyniki w czasie rzeczywistym i obsługuje intuicyjne wyświetlanie w widoku tabeli.

Jak to narzędzie może pomóc w automatyzacji testowania API i asercjach?

Podczas automatyzacji testowania API możesz wkleić JSON odpowiedzi API do narzędzia i napisać wyrażenia JSONPath jako asercje testowe. Szybko weryfikując, czy zwrócony wynik spełnia oczekiwania (np. sprawdzając, czy `$.code` równa się 200), możesz szybko rozwiązywać błędy logiki interfejsu, co czyni je potężnym asystentem w procesach testowania Postman lub JMeter.

Jak uzyskać dostęp do ostatniego elementu tablicy?

Użyj ujemnego indeksu [-1] do dostępu do ostatniego elementu tablicy, [-2] do przedostatniego i tak dalej. Jest to znacznie wygodniejsze niż najpierw obliczanie długości tablicy, szczególnie podczas pracy z dynamicznymi odpowiedziami API.

Jak używać wycinka tablicy [start:end]?

Wycinek tablicy działa podobnie jak w tablicach JavaScript: `$.items[0:3]` zwraca pierwsze 3 elementy, `$.items[2:5]` — elementy od indeksu 2 do 4. Jeśli pominiesz start, liczenie zaczyna się od początku; jeśli pominiesz end — do końca tablicy.

Jakie operatory porównania są obsługiwane w filtrach ?()?

Obsługiwane są wszystkie główne operatory porównania: == (równe), != (różne), > (większe niż), < (mniejsze niż), >= (większe lub równe), <= (mniejsze lub równe). Możesz je łączyć do precyzyjnego filtrowania danych według wartości liczbowych lub ciągów znaków.

Ile wbudowanych przykładów jest dostępnych?

Narzędzie zawiera 8 wbudowanych przykładów obejmujących najpowszechniejsze scenariusze użycia: ekstrakcję pól, filtrowanie warunkowe, pracę z tablicami, symbole wieloznaczne, wycinki i wiele więcej. Możesz załadować dowolny przykład jednym kliknięciem, aby szybko nauczyć się składni.

Co się stanie, jeśli mój JSON zawiera błędy składniowe?

Narzędzie ma wbudowaną funkcję automatycznej naprawy błędów JSON. Automatycznie wykrywa powszechne problemy: brakujące cudzysłowy, dodatkowe przecinki, pojedyncze cudzysłowy zamiast podwójnych — i proponuje poprawki. Błędy są podświetlane w czasie rzeczywistym z dokładnym wskazaniem pozycji.

Jak działa opóźnienie debounce podczas wprowadzania?

Używane jest zoptymalizowane opóźnienie 400 ms. Oznacza to, że zapytanie jest wykonywane tylko po tym, jak przestaniesz pisać na 400 ms, co zapobiega niepotrzebnym obliczeniom podczas szybkiego wprowadzania i zapewnia płynną pracę bez opóźnień.

Jakie skróty klawiszowe są obsługiwane?

Obsługiwane są standardowe skróty klawiszowe edytora CodeMirror: Ctrl/Cmd + F do wyszukiwania, Ctrl/Cmd + H do zamiany, Ctrl/Cmd + Z do cofania, Ctrl/Cmd + Shift + Z do ponawiania, Ctrl/Cmd + A do zaznaczania wszystkiego. Pełna lista jest dostępna w pomocy edytora.

Czy historia zapytań jest zapisywana lokalnie?

Tak, narzędzie automatycznie zapisuje ostatnich 200 zapytań w localStorage Twojej przeglądarki. Historia pozostaje nawet po zamknięciu i ponownym otwarciu karty, co jest wygodne do powrotu do poprzednich sesji roboczych.

Czy dane są wysyłane na serwer?

Nie. Całe przetwarzanie odbywa się wyłącznie lokalnie w Twojej przeglądarce przy użyciu edytora CodeMirror. Dane nigdy nie są wysyłane na żadne serwery, co gwarantuje pełną poufność podczas pracy z wrażliwymi danymi API, tokenami lub informacjami biznesowymi.

Czy można przełączać się między widokiem JSON a tabelą?

Tak, narzędzie obsługuje podwójny widok. W widoku tabeli wyniki zapytania są wyświetlane w strukturyzowanej formie z kolumnami i wierszami, co jest szczególnie wygodne podczas ekstrakcji tablic obiektów — możesz łatwo przeglądać i porównywać wiele rekordów.

Jak używać tego w Postman do asercji?

Najpierw stwórz prototyp i debuguj wyrażenie JSONPath w tym narzędziu, następnie skopiuj je do testów Postman. Składnia jest zgodna z implementacją JSONPath używaną w Postman do asercji pm.response.json(), co pozwala na szybkie przenoszenie gotowych wyrażeń.

Czy nadaje się do testowania w JMeter?

Oczywiście. Wyrażenia JSONPath opracowane tutaj mogą być bezpośrednio używane w komponentach JSON Extractor i JSON Assertion wtyczki JMeter. Przyspiesza to tworzenie planów testowych, pozwalając najpierw wizualnie sprawdzić poprawność wyrażenia przed wdrożeniem w testach obciążeniowych.

Czym jest JSONPath i to narzędzie online

JSONPath to język zapytań i wyrażeń do ekstrakcji danych ze struktur JSON, podobny do XPath dla XML. Pozwala precyzyjnie nawigować po głęboko zagnieżdżonych obiektach i tablicach, ekstrahować określone pola, filtrować elementy według warunków i uzyskiwać potrzebne fragmenty danych bez pisania pętli lub ręcznego przeszukiwania. JSONPath został zaproponowany przez Stefana Gössnera w 2007 roku i od tego czasu stał się de facto standardem pracy z JSON w testowaniu API, analizie danych i przetwarzaniu strukturyzowanych dokumentów.

To narzędzie online to wygodny interfejs do wykonywania zapytań JSONPath bezpośrednio w przeglądarce. Zostało stworzone specjalnie dla inżynierów testów API, analityków danych i programistów frontend, którzy często pracują ze złożonymi strukturami odpowiedzi API, danymi logów i plikami konfiguracyjnymi. Zamiast pisania kodu lub używania nieporęcznych bibliotek możesz po prostu wkleić JSON, wprowadzić wyrażenie i natychmiast zobaczyć wynik.

Narzędzie obsługuje rdzeń praktycznej składni, który pokrywa przytłaczającą większość codziennych zadań. Możesz używać precyzyjnego dostępu do właściwości przez kropkę (np. $.store.book.title), indeksowania tablic, w tym indeksów ujemnych do dostępu od końca tablicy ([-1] dla ostatniego elementu), symbolu wieloznacznego * do dopasowywania dowolnych pól, wycinków tablic [start:end] do ekstrakcji zakresów i warunkowych filtrów ?() z pełnym zestawem operatorów porównania ==, !=, >, <, >=, <=. Ten zestaw wystarcza do rozwiązania ponad 90% typowych zadań ekstrakcji danych.

Jedną z kluczowych funkcji jest podwójny widok wyników: możesz przełączać się między klasycznym widokiem JSON a strukturyzowanym widokiem tabeli. Widok tabeli jest szczególnie wygodny podczas pracy z tablicami obiektów — wyniki są wyświetlane w formie kolumn i wierszy, co ułatwia analizę wizualną, porównywanie wartości i przygotowywanie danych do raportów lub dalszego przetwarzania. Przełączanie między trybami odbywa się jednym kliknięciem bez ponownego zapytania.

Aby zwiększyć produktywność, narzędzie ma wbudowanych 8 gotowych przykładów obejmujących powszechne scenariusze użycia. Jeśli jesteś początkujący w JSONPath, możesz załadować dowolny przykład jednym kliknięciem, poznać strukturę wyrażenia i od razu zobaczyć wynik. Podczas wprowadzania używane jest zoptymalizowane opóźnienie debounce wynoszące 400 milisekund — zapytanie jest wykonywane tylko po tym, jak przestaniesz pisać, co zapobiega opóźnieniom i niepotrzebnym obliczeniom podczas szybkiego pisania.

Edytor jest zbudowany na podstawie CodeMirror, zapewniając profesjonalną pracę z kodem: podświetlanie składni w czasie rzeczywistym, numeracja wierszy, inteligentne wcięcia i obsługa standardowych skrótów klawiszowych do wyszukiwania, zamiany, cofania i ponawiania akcji. Narzędzie zawiera również wbudowaną funkcję automatycznej naprawy błędów JSON — wykrywa powszechne problemy (brak cudzysłowów, dodatkowe przecinki, pojedyncze cudzysłowy) i podświetla je z dokładnym wskazaniem pozycji, pomagając szybko przygotować dane do zapytania.

Całe przetwarzanie odbywa się wyłącznie lokalnie w Twojej przeglądarce — żadne dane nie są wysyłane na serwer. Jest to kluczowe podczas pracy z wrażliwymi danymi: tokenami autoryzacyjnymi, danymi osobowymi użytkowników, wewnętrznymi danymi biznesowymi lub poufnymi odpowiedziami API. Dla wygody ponownego użycia automatycznie zapisywana jest lokalna historia ostatnich 200 zapytań w magazynie localStorage Twojej przeglądarki — historia pozostaje nawet po zamknięciu karty.

To narzędzie jest szeroko używane podczas pracy z Postman i JMeter: możesz szybko stworzyć prototyp i debugować wyrażenie JSONPath tutaj, a następnie skopiować je do testów Postman (dla pm.response.json()) lub do komponentów JSON Extractor/JSON Assertion w JMeter. Ważne jest, aby pamiętać, że ta implementacja skupia się na rdzeniu praktycznej składni, pokrywającym ponad 90% codziennych scenariuszy programistycznych: zejście rekurencyjne (..), wyrażenia skryptowe i wielokrotne kombinacje warunków nie są obecnie obsługiwane, co jest celowo zrobione, aby zapewnić szybkość, niezawodność i przewidywalne zachowanie.

术语表

$
Element główny JSONPath, reprezentujący cały obiekt lub tablicę w korzeniu dokumentu. Od niego zaczyna się każde bezwzględne wyrażenie ścieżki.
@
Bieżący węzeł, używany wewnątrz wyrażeń filtra ?() do odwoływania się do właściwości bieżącego przetwarzanego elementu.
*
Symbol wieloznaczny, dopasowujący dowolne pole w obiekcie lub dowolny element w tablicy na bieżącym poziomie hierarchii.
.
Operator dostępu do właściwości potomnej, używany do nawigacji po zagnieżdżonych obiektach, np. $.store.book.
[]
Operator indeksu tablicy, używany do dostępu do elementów według indeksu, np. [0] dla pierwszego elementu lub [-1] dla ostatniego.
[start:end]
Operator wycinka tablicy, ekstrahuje zakres elementów od indeksu start do end (nie włączając end), podobnie jak wycinki w Pythonie lub JavaScript.
?()
Operator wyrażenia filtra, stosuje warunek do każdego elementu tablicy lub obiektu i zwraca tylko te, które spełniają warunek.
==
Operator równości w filtrach, sprawdza, czy wartość właściwości jest równa podanej wartości.
!=
Operator nierówności w filtrach, sprawdza, czy wartość właściwości różni się od podanej wartości.
>
Operator 'większe niż' w filtrach, używany do porównań liczbowych: sprawdza, czy wartość właściwości przekracza podany próg.
>=
Operator 'większe lub równe' w filtrach, sprawdza, czy wartość właściwości jest większa od podanej lub jej równa.
CodeMirror
Wysokowydajny edytor kodu, używany w narzędziu do zapewnienia podświetlania składni, numeracji wierszy i wygodnego edytowania.

Przewodnik po podstawowej składni JSONPath

Poniżej przedstawiono podstawowe wyrażenia składni JSONPath obsługiwane przez to narzędzie wraz z przykładami użycia.

SkładniaPrzykładOpis
$$Węzeł główny, reprezentuje cały dokument
.property$.storeDostęp do właściwości potomnej obiektu
[index]$.books[0]Dostęp do elementu tablicy według indeksu (począwszy od 0)
[-1]$.books[-1]Dostęp do ostatniego elementu tablicy
*$.store.*Symbol wieloznaczny, dopasowuje dowolne pole/element
[start:end]$.books[0:3]Wycinek tablicy, elementy od indeksu start do end-1
?()$.books[?(@.price<10)]Filtr warunkowy, zwraca pasujące elementy

Operatory porównania w filtrach

Wszystkie obsługiwane operatory porównania do użycia wewnątrz wyrażeń filtra ?().

OperatorPrzykładOpis
==?(@.category=='fiction')Równe — dokładne dopasowanie wartości
!=?(@.status!='draft')Różne — wyklucza podaną wartość
>?(@.price>20)Większe niż — do porównań liczbowych
<?(@.stock<5)Mniejsze niż — do porównań liczbowych
>=?(@.rating>=4.5)Większe lub równe
<=?(@.age<=18)Mniejsze lub równe

Skróty klawiszowe edytora

Standardowe skróty klawiszowe edytora CodeMirror zwiększające produktywność.

Skrót (Windows/Linux)MacAkcja
Ctrl + FCmd + FWyszukiwanie w edytorze
Ctrl + HCmd + HWyszukiwanie i zamiana
Ctrl + ZCmd + ZCofnięcie akcji
Ctrl + Shift + ZCmd + Shift + ZPonowienie akcji
Ctrl + ACmd + AZaznaczenie wszystkiego
Ctrl + /Cmd + /Przełącz komentarz (w JSON nieobsługiwane)

Privacy & Security

Wszystkie zapytania JSONPath, przetwarzanie JSON i obliczenia w tym narzędziu są wykonywane wyłącznie lokalnie w Twojej przeglądarce przy użyciu edytora CodeMirror. Dane nigdy nie są wysyłane na żadne serwery, nie są zapisywane ani buforowane zdalnie. Narzędzie jest bezpieczne nawet podczas przetwarzania odpowiedzi API zawierających sekrety, tokeny lub informacje o użytkownikach. Dane są automatycznie czyszczone po zamknięciu lub odświeżeniu strony; lokalna historia jest przechowywana tylko w Twoim własnym magazynie localStorage.

Authoritative References

Troubleshooting

Wyrażenie zwraca pusty wynik, chociaż dane istnieją

Sprawdź poprawność zapisu ścieżki: wielkość liter, poprawność zagnieżdżenia, obecność literówek w nazwach pól. Pamiętaj, że JSONPath nie obsługuje zejścia rekurencyjnego (..), więc musisz podawać pełną ścieżkę do każdego poziomu. Spróbuj najpierw przetestować prostsze wyrażenie, stopniowo je komplikując.

Filtr ?() nie działa zgodnie z oczekiwaniami

Upewnij się, że używasz poprawnych operatorów porównania, a wartości ciągów znaków są ujęte w pojedyncze cudzysłowy. Sprawdź typ danych: wartości liczbowe nie muszą być ujęte w cudzysłowy. Na przykład ?(@.price<10) jest poprawne dla liczb, a ?(@.category=='fiction') — dla ciągów znaków.

JSON jest wyświetlany z błędami składniowymi

Narzędzie ma funkcję automatycznej naprawy błędów JSON, ale jeśli błąd jest złożony, spróbuj najpierw użyć oddzielnego narzędzia JSON Repair. Najczęstsze błędy: pojedyncze cudzysłowy zamiast podwójnych, brak cudzysłowów u kluczy, dodatkowe przecinki po ostatnim elemencie, niezamknięte nawiasy.

Zejście rekurencyjne .. nie działa

To oczekiwane zachowanie. Ta implementacja skupia się na rdzeniu praktycznej składni, pokrywającym ponad 90% codziennych scenariuszy programistycznych. Zejście rekurencyjne (..), wyrażenia skryptowe i wielokrotne kombinacje warunków nie są obecnie obsługiwane. Używaj dokładnych ścieżek z jawnym wskazaniem poziomów zagnieżdżenia.