Tester výrazov JSONPath
Otestuj výrazy JSONPath na vlastnom JSON v prehliadači. Filtre, výseky, rekurzívne prehľadávanie, cesty a JSON Pointery, s hotovými príkladmi.
Ako otestovať výraz JSONPath
- Vlož svoj JSON do Údaje JSON, alebo klikni na Načítať vzorové údaje a použi klasický príklad kníhkupectva.
- Napíš výraz do Výraz JSONPath, alebo ho vyber z Príklady.
- Výsledok sa mení počas písania; Spustiť dopyt ho spustí znova. Stavový riadok uvádza počet zhôd.
- V Zobraziť prepínaj medzi Hodnoty, Cesty, JSON Pointery a Cesty a hodnoty a potom výsledok skopíruj.
Syntax JSONPath v skratke
| Syntax | Význam | Príklad |
|---|---|---|
$ |
koreň dokumentu | $ |
.name alebo ['name'] |
potomok | $.store.bicycle |
* |
každý potomok | $.store.* |
.. |
rekurzívne prehľadávanie v ľubovoľnej hĺbke | $..author |
[n] |
index poľa od 0 | $..book[2] |
[start:end:step] |
výsek; záporné čísla sa počítajú od konca | $..book[-1:] |
[a,b] |
zjednotenie | $..book[0,1] |
[?(expr)] |
filter | $..book[?(@.price < 10)] |
^ |
rodič každej zhody | $..book[?(@.price > 20)]^ |
~ |
názov vlastnosti namiesto hodnoty | $.store.*~ |
Výsledky sa vracajú v poradí dokumentu. Cesty dávajú normalizované cesty, napríklad $['store']['book'][0]['title'], a JSON Pointery tvar podľa RFC 6901 /store/book/0/title, vhodný pre JSON Patch alebo pre cesty chýb validátorov JSON Schema.
Filtračné výrazy: čo je podporované
Filtre sa vyhodnocujú pomocou jsonpath-plus v bezpečnom režime: výraz parsuje a interpretuje malý vyhodnocovač, nikdy sa nepredáva do eval ani new Function. Vo vnútri [?( … )] môžeš použiť:
@pre aktuálnu položku,@.fielda@['field']pre jej členy,@rootpre celý dokument ($vo filtri nie je dostupné);- porovnania
==,!=,===,!==,<,<=,>,>=; - logiku
&&,||,!, aritmetiku+ - * / %a ternárny operátora ? b : c; - literály reťazcov, čísel,
true,false,nulla regulárnych výrazov; - metódy samotných hodnôt, napríklad
@.title.startsWith('S'),@.tags.includes('new')alebo@.title.match(/lord/i); @property(kľúč alebo index aktuálnej položky),@parenta@path(jej normalizovaná cesta) v štýle jsonpath-plus.
Prístup ku constructor, __proto__ a konštruktoru Function je zablokovaný. Ak filter zlyhá na jednej položke, napríklad @.isbn.startsWith('0') pri knihe bez isbn, táto položka jednoducho nezodpovedá; syntaktická chyba vo výraze sa nahlási. Filtre zapísané podľa RFC 9535, [?@.price < 10] bez zátvoriek, sa akceptujú a čítajú sa ako [?(@.price < 10)]. Funkcie RFC 9535 ako length(), count(), match() a search() nie sú dostupné: namiesto nich použi metódy JavaScriptu, napríklad @.name.length.
Výbery typov z jsonpath-plus fungujú aj na konci cesty: $..*@number() vráti každé číslo a @string(), @boolean(), @array(), @object(), @null() a @integer() robia to isté pre ostatné typy.
Často kladené otázky
Odosiela sa môj JSON na server?
Nie. Analýza aj vyhodnotenie prebiehajú v tvojom prehliadači a tvoje údaje nikdy neopustia tvoj počítač.
Prečo môj filter nič nevracia?
Skontroluj, či cesta pred filtrom vyberá pole alebo objekt: $.store.book[?(@.price < 10)] filtruje knihy, kým $.store[?(@.price < 10)] skúma book a bicycle. Vlastnosť, ktorá položke chýba, je undefined, takže porovnania s ňou sú nepravdivé.
Aký je rozdiel medzi `==` a `===`?
Ako v JavaScripte: == konvertuje typy ("10" == 10 je pravda), kým === porovnáva typ aj hodnotu.
Prečo je výstup obmedzený?
Do výsledku sa zapíše iba prvých 10 000 zhôd, aby stránka zostala responzívna; stavový riadok uvádza úplný počet.
Je JSONPath štandardizovaný?
Áno, od roku 2024 normou RFC 9535. Implementácie sa však stále líšia, najmä vo filtroch; tento nástroj sleduje jsonpath-plus, teda syntax pôvodného JSONPath od Stefana Goessnera.
Súvisiace nástroje
- Formátovanie a validácia JSON Bezplatný formátovač a validátor JSON, ktorý skrášľuje, minifikuje a kontroluje JSON v prehliadači a hlási syntaktické chyby s riadkom a stĺpcom.
- Validátor JSON Schema Over dokument JSON podľa schémy JSON Schema v prehliadači. Každá chyba je uvedená s cestou v dokumente, kľúčovým slovom a cestou v schéme.
- Tester regulárnych výrazov Testuj regulárne výrazy JavaScriptu naživo so zvýraznenými zhodami, zachytávacími skupinami, nahradením a vysvetlením každého prvku vzoru v bežnom jazyku.