Preizkuševalnik JSONPath
Preizkusi izraze JSONPath na svojem JSON v brskalniku. Filtri, rezine, rekurzivni spust, poti in kazalci JSON Pointer ter pripravljeni primeri.
Kako preizkusiti izraz JSONPath
- Prilepi svoj JSON v Podatki JSON ali klikni Naloži vzorčne podatke, da uporabiš klasični primer knjigarne.
- Vnesi izraz v Izraz JSONPath ali izberi enega iz Primeri.
- Rezultat se posodablja med tipkanjem; Zaženi poizvedbo ga zažene znova. Vrstica stanja prikaže število zadetkov.
- S Prikaži preklapljaš med Vrednosti, Poti, Kazalci JSON Pointer in Poti in vrednosti, nato rezultat kopiraj.
Sintaksa JSONPath na kratko
| Sintaksa | Pomen | Primer |
|---|---|---|
$ |
koren dokumenta | $ |
.name ali ['name'] |
podrejeni element | $.store.bicycle |
* |
vsak podrejeni element | $.store.* |
.. |
rekurzivni spust, na kateri koli globini | $..author |
[n] |
indeks tabele, od 0 | $..book[2] |
[start:end:step] |
rezina; negativna števila štejejo od konca | $..book[-1:] |
[a,b] |
unija | $..book[0,1] |
[?(expr)] |
filter | $..book[?(@.price < 10)] |
^ |
starš vsakega zadetka | $..book[?(@.price > 20)]^ |
~ |
ime lastnosti namesto vrednosti | $.store.*~ |
Rezultati se vrnejo v vrstnem redu dokumenta. Poti da normalizirane poti, kot je $['store']['book'][0]['title'], Kazalci JSON Pointer pa obliko RFC 6901 /store/book/0/title, uporabno za JSON Patch ali za poti napak preverjevalnikov JSON Schema.
Filtrski izrazi: kaj je podprto
Filtri se ovrednotijo z jsonpath-plus v varnem načinu: izraz razčleni in interpretira majhen ovrednotivec, nikoli se ne poda eval ali new Function. Znotraj [?( … )] lahko uporabiš:
@za trenutni element,@.fieldin@['field']za njegove člane,@rootza celoten dokument ($znotraj filtra ni na voljo);- primerjave
==,!=,===,!==,<,<=,>,>=; - logiko
&&,||,!, aritmetiko+ - * / %in ternarni operatora ? b : c; - literale nizov, števil,
true,false,nullin regularnih izrazov; - metode samih vrednosti, na primer
@.title.startsWith('S'),@.tags.includes('new')ali@.title.match(/lord/i); @property(ključ ali indeks trenutnega elementa),@parentin@path(njegova normalizirana pot) v slogu jsonpath-plus.
Dostop do constructor, __proto__ in konstruktorja Function je blokiran. Če filter pri enem elementu odpove, na primer @.isbn.startsWith('0') pri knjigi brez isbn, se ta element preprosto ne ujema; sintaksna napaka v izrazu je javljena. Filtri, napisani po RFC 9535, [?@.price < 10] brez oklepajev, so sprejeti in prebrani kot [?(@.price < 10)]. Funkcije RFC 9535, kot so length(), count(), match() in search(), niso na voljo: namesto tega uporabi metode JavaScript, kot je @.name.length.
Izbirniki tipov iz jsonpath-plus delujejo tudi na koncu poti: $..*@number() vrne vsa števila, @string(), @boolean(), @array(), @object(), @null() in @integer() pa delajo enako za druge tipe.
Pogosta vprašanja
Ali se moj JSON pošlje na strežnik?
Ne. Razčlenjevanje in ovrednotenje potekata v tvojem brskalniku, tvoji podatki pa nikoli ne zapustijo tvojega računalnika.
Zakaj moj filter ne vrne ničesar?
Preveri, ali pot pred filtrom izbere tabelo ali objekt: $.store.book[?(@.price < 10)] filtrira knjige, $.store[?(@.price < 10)] pa pogleda book in bicycle. Lastnost, ki je pri elementu ni, je undefined, zato so primerjave z njo napačne.
Kakšna je razlika med `==` in `===`?
Kot v JavaScriptu == pretvarja tipe ("10" == 10 je res), === pa primerja tip in vrednost.
Zakaj je izhod omejen?
V rezultat se zapiše samo prvih 10 000 zadetkov, da stran ostane odzivna; vrstica stanja pove celotno število.
Ali je JSONPath standardiziran?
Da, od leta 2024 z RFC 9535. Izvedbe se še vedno razlikujejo, zlasti pri filtrih; to orodje sledi jsonpath-plus, sintaksi izvirnega JSONPath Stefana Goessnerja.
Sorodna orodja
- Oblikovalnik in preverjevalnik JSON Brezplačen oblikovalnik in preverjevalnik JSON, ki v brskalniku polepša, zmanjša in preveri JSON, sintaksne napake pa javi z vrstico in stolpcem.
- Preverjevalnik sheme JSON Schema Preveri dokument JSON glede na shemo JSON Schema v brskalniku. Vsaka napaka je navedena s potjo v dokumentu, ključno besedo in potjo v shemi.
- Preizkus regularnih izrazov Sproti preizkusi regularne izraze JavaScripta z označenimi ujemanji, zajemalnimi skupinami, zamenjavo in razlago vsakega dela vzorca v preprostem jeziku.