Tester JSONPath
Wklej dokument JSON i wpisz wyrażenie JSONPath takie jak $..book[?(@.price<10)]. Tester ocenia je względem dokumentu i pokazuje każdą pasującą wartość wraz z dokładną ścieżką każdego dopasowania. Przydatne do walidacji zapytania, które masz zamiar wkleić do skryptu lub specyfikacji API (Postman, k6, JMeter, wszystkie mówią w JSONPath).
Jak przetestować wyrażenie JSONPath
-
1
Wklej dokument JSON
Dowolny poprawny JSON: obiekt, tablica, głęboko zagnieżdżony.
-
2
Wpisz wyrażenie
Zacznij od `$` dla korzenia. Użyj `.` dla dziecka, `..` dla rekurencyjnego schodzenia, `[*]` dla symbolu wieloznacznego.
-
3
Zobacz dopasowania na żywo
Każde dopasowanie jest pokazane z jego wartością i pełną ścieżką JSONPath, podświetlone w oryginalnym dokumencie.
-
4
Skopiuj wyniki
Skopiuj dopasowania jako tablicę JSON albo skopiuj każdą pojedynczą ścieżkę do użycia w kodzie w dalszych etapach.
Referencja składni JSONPath
| Wyrażenie | Znaczenie |
|---|---|
$ |
Element korzenia |
$.store |
Dziecko $ o nazwie store |
$["store"] |
To samo, forma nawiasowa |
$..author |
Wszystkie właściwości author na dowolnej głębokości |
$.store.book[*] |
Każda książka w sklepie |
$.store.book[0] |
Pierwsza książka |
$.store.book[-1:] |
Ostatnia książka |
$.store.book[0:2] |
Pierwsze dwie książki (wycinek) |
$.store.book[?(@.isbn)] |
Książki z właściwością isbn |
$.store.book[?(@.price < 10)] |
Książki tańsze niż 10 |
$.store.book[?(@.category == "fiction")] |
Książki beletrystyczne |
$..* |
Każda wartość, wszędzie |
Wyrażenia filtrujące
Wyrażenia filtrujące używają @, by odwołać się do bieżącego węzła. Tester obsługuje typowe operatory ==, !=, <, >, <=, >=, &&, || oraz wyrażenie regularne =~.
$.items[?(@.qty >= 10 && @.price < 50)]
Dialekty JSONPath
Istnieje kilka implementacji JSONPath z drobnymi niezgodnościami. Ten tester podąża za oryginalną specyfikacją Goessnera i udoskonaleniami RFC 9535, które są zgodne z:
- Jayway JsonPath (Java)
- jsonpath-plus (JavaScript)
- jsonpath-rw (Python)
- podstawowymi wyrażeniami ścieżek jq
Niezgodne funkcje (jak wyrażenia skryptowe z dowolnym JS) są oznaczane w panelu błędów.
Kiedy JSONPath bije pełny parser
- Asercje testowe:
pm.expect(jsonData).to.have.jsonPath(...)z Postmana przyjmuje ścieżkę. - Wyciąganie konfiguracji: wyciągnij jedną wartość z ogromnej odpowiedzi API bez biblioteki.
- Skrypty testów obciążeniowych: k6, JMeter i Gatling, wszystkie obsługują JSONPath do kontroli.
- Kubernetes / AWS CLI: flagi
--queryi--jsonpathpozwalają kształtować wyjście z wiersza poleceń.
Typowe błędy
- Używanie
.na tablicy.$.users.0.namejest błędne; użyj$.users[0].name. - Zapominanie o
..dla głębokości. Ścieżka taka jak$.namedopasowuje tylkonamenajwyższego poziomu; użyj$..namedla wszystkich. - Mylenie JSONPath z jq. jq to nadzbiór z przepływem sterowania i transformacjami; JSONPath służy wyłącznie do wyciągania.
- Kotwiczenie wyrażeń regularnych.
=~ /foo/dopasowuje podciągi; użyj/^foo$/dla dokładnego dopasowania.
Najczęściej zadawane pytania
JSONPath to czysty język wyciągania, selekcja, filtrowanie, wycinanie. jq to pełny język zapytań / transformacji z przepływem sterowania, zmiennymi i funkcjami. Do prostego wyciągania JSONPath jest bardziej przenośny; do transformacji użyj jq.
Oryginalnej specyfikacji Goessnera plus udoskonaleń RFC 9535, zgodnych z Jayway JsonPath (Java) i jsonpath-plus (Node). Rozszerzenia specyficzne dla dialektu (wyrażenia skryptowe z dowolnym kodem) nie są obsługiwane.
Tak. $..book[?(@.title =~ /^Harry.*/)] dopasowuje wszystkie książki, których tytuł zaczyna się od „Harry”. Użyj ^ i $ dla zachowania pełnego dopasowania.
Tak. Zarówno JSON, jak i ewaluator JSONPath żyją w twojej przeglądarce. Twój dokument i zapytania nigdy nie opuszczają karty.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator EditorConfig
Wygeneruj plik .editorconfig z własnymi regułami stylu i rozmiaru wcięć, końca linii, kodowania i białych znaków, aby uzyskać spójne formatowanie w różnych IDE i edytorach.
Walidator adresów e-mail
Zweryfikuj adres e-mail: sprawdzenie składni RFC 5322, sprawdzenie rekordu MX w czasie rzeczywistym oraz szczegóły dotyczące części lokalnej, domeny i długości. Żadna wiadomość nie jest wysyłana.
Formatowanie HTML
Formatuj HTML lokalnie w przeglądarce, używając wcięć dwóch lub czterech spacji. HTML nie jest wysyłany ani walidowany.
Narzędzie jest dostępne w innych językach
- Testeur JSONPath [FR]
- JSONPath-testare [SV]
- เครื่องมือทดสอบ JSON Path [TH]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- JSON Path Tester [ID]
- Công cụ kiểm thử JSONPath [VI]
- JSONPath 테스터 [KO]
- JSONPath-Tester [DE]
- Probador de JSONPath [ES]
- JSON Path Tester [NL]
- JSONPath テスター [JA]
- Testador de JSONPath [PT]
- JSONPath Tester [RU]
- JSONPath Test Aracı [TR]
- JSON路径测试器 [ZH]
- JSONPath Tester [EN]
- Tester JSONPath [IT]