Tester JSONPath
Testuj wyrażenia JSONPath na własnym JSON w przeglądarce. Filtry, wycinki, zejście rekurencyjne, ścieżki i JSON Pointery, z gotowymi przykładami.
Jak przetestować wyrażenie JSONPath
- Wklej JSON w pole Dane JSON albo kliknij Wczytaj przykładowe dane, aby użyć klasycznego przykładu księgarni.
- Wpisz wyrażenie w polu Wyrażenie JSONPath albo wybierz je z listy Przykłady.
- Wynik aktualizuje się podczas pisania; Uruchom zapytanie uruchamia je ponownie. Wiersz stanu podaje liczbę dopasowań.
- Przełącznikiem Pokaż wybierz Wartości, Ścieżki, JSON Pointery lub Ścieżki i wartości, a potem skopiuj wynik.
Składnia JSONPath w pigułce
| Składnia | Znaczenie | Przykład |
|---|---|---|
$ |
korzeń dokumentu | $ |
.name lub ['name'] |
element podrzędny | $.store.bicycle |
* |
każdy element podrzędny | $.store.* |
.. |
zejście rekurencyjne, na dowolnej głębokości | $..author |
[n] |
indeks tablicy, od 0 | $..book[2] |
[start:end:step] |
wycinek; liczby ujemne liczą od końca | $..book[-1:] |
[a,b] |
suma (union) | $..book[0,1] |
[?(expr)] |
filtr | $..book[?(@.price < 10)] |
^ |
rodzic każdego dopasowania | $..book[?(@.price > 20)]^ |
~ |
nazwa właściwości zamiast wartości | $.store.*~ |
Wyniki są zwracane w kolejności występowania w dokumencie. Ścieżki dają znormalizowane ścieżki, np. $['store']['book'][0]['title'], a JSON Pointery – postać z RFC 6901 /store/book/0/title, przydatną w JSON Patch czy przy ścieżkach błędów walidatorów JSON Schema.
Wyrażenia filtrujące: co jest obsługiwane
Filtry są obliczane przez jsonpath-plus w trybie bezpiecznym: wyrażenie jest parsowane i interpretowane przez mały ewaluator, a nigdy nie trafia do eval ani new Function. Wewnątrz [?( … )] możesz używać:
@dla bieżącego elementu,@.fieldi@['field']dla jego składowych,@rootdla całego dokumentu ($nie jest dostępne wewnątrz filtra);- porównań
==,!=,===,!==,<,<=,>,>=; - logiki
&&,||,!, arytmetyki+ - * / %i operatora warunkowegoa ? b : c; - literałów: ciągów, liczb,
true,false,nulli wyrażeń regularnych; - metod samych wartości, np.
@.title.startsWith('S'),@.tags.includes('new')czy@.title.match(/lord/i); @property(klucz lub indeks bieżącego elementu),@parenti@path(jego znormalizowana ścieżka), w stylu jsonpath-plus.
Dostęp do constructor, __proto__ i konstruktora Function jest zablokowany. Jeśli filtr zawiedzie dla jednego elementu, np. @.isbn.startsWith('0') dla książki bez isbn, ten element po prostu nie pasuje; błąd składni w wyrażeniu jest zgłaszany. Filtry zapisane w stylu RFC 9535, [?@.price < 10] bez nawiasów, są akceptowane i odczytywane jako [?(@.price < 10)]. Funkcje RFC 9535, takie jak length(), count(), match() i search(), nie są dostępne: używaj zamiast nich metod JavaScriptu, np. @.name.length.
Selektory typów z jsonpath-plus działają też na końcu ścieżki: $..*@number() zwraca każdą liczbę, a @string(), @boolean(), @array(), @object(), @null() i @integer() robią to samo dla innych typów.
Najczęściej zadawane pytania
Czy mój JSON jest wysyłany na serwer?
Nie. Parsowanie i obliczanie odbywają się w twojej przeglądarce, a twoje dane nigdy nie opuszczają twojego komputera.
Dlaczego mój filtr nic nie zwraca?
Sprawdź, czy ścieżka przed filtrem wybiera tablicę lub obiekt: $.store.book[?(@.price < 10)] filtruje książki, a $.store[?(@.price < 10)] sprawdza book i bicycle. Właściwość, której brakuje w elemencie, ma wartość undefined, więc porównania z nią są fałszywe.
Czym różni się `==` od `===`?
Tak jak w JavaScripcie: == konwertuje typy ("10" == 10 jest prawdą), a === porównuje typ i wartość.
Dlaczego wynik jest ograniczony?
Do wyniku trafia tylko pierwszych 10 000 dopasowań, aby strona pozostała responsywna; wiersz stanu podaje pełną liczbę.
Czy JSONPath jest ustandaryzowany?
Tak, od 2024 roku – przez RFC 9535. Implementacje wciąż się różnią, zwłaszcza w filtrach; to narzędzie stosuje jsonpath-plus, czyli składnię oryginalnego JSONPath Stefana Goessnera.
Podobne narzędzia
- Formatowanie i walidacja JSON Darmowe narzędzie do formatowania i walidacji JSON: upiększa, minifikuje i sprawdza JSON w przeglądarce, wskazując wiersz i kolumnę błędu.
- Walidator JSON Schema Waliduj dokument JSON względem JSON Schema w przeglądarce. Każdy błąd jest wyświetlany ze ścieżką w dokumencie, słowem kluczowym i ścieżką w schemacie.
- Tester wyrażeń regularnych Testuj wyrażenia regularne JavaScript na żywo z podświetlaniem dopasowań, grupami przechwytującymi, zamianą tekstu i objaśnieniem każdego elementu wzorca.