JSONPath tester
Testiraj JSONPath izraze na vlastitom JSON-u u pregledniku. Filtri, isječci, rekurzivni spust, putanje i JSON Pointeri, uz gotove primjere.
Kako testirati JSONPath izraz
- Zalijepi svoj JSON u JSON podaci ili klikni Učitaj probne podatke da koristiš klasičan primjer knjižare.
- Upiši izraz u JSONPath izraz ili odaberi jedan iz Primjeri.
- Rezultat se osvježava dok tipkaš; Pokreni upit ga pokreće ponovno. Statusni redak daje broj podudaranja.
- Pomoću Prikaži prebacuj se između Vrijednosti, Putanje, JSON Pointeri i Putanje i vrijednosti, zatim kopiraj rezultat.
JSONPath sintaksa ukratko
| Sintaksa | Značenje | Primjer |
|---|---|---|
$ |
korijen dokumenta | $ |
.name ili ['name'] |
podređeni element | $.store.bicycle |
* |
svaki podređeni element | $.store.* |
.. |
rekurzivni spust, na bilo kojoj dubini | $..author |
[n] |
indeks polja, od 0 | $..book[2] |
[start:end:step] |
isječak; negativni brojevi broje od kraja | $..book[-1:] |
[a,b] |
unija | $..book[0,1] |
[?(expr)] |
filtar | $..book[?(@.price < 10)] |
^ |
roditelj svakog podudaranja | $..book[?(@.price > 20)]^ |
~ |
naziv svojstva umjesto vrijednosti | $.store.*~ |
Rezultati se vraćaju redoslijedom dokumenta. Putanje daje normalizirane putanje poput $['store']['book'][0]['title'], a JSON Pointeri daje oblik iz RFC-a 6901 /store/book/0/title, zgodan za JSON Patch ili za putanje grešaka validatora JSON Schema.
Izrazi filtara: što je podržano
Filtri se izračunavaju pomoću jsonpath-plus u sigurnom načinu: izraz analizira i tumači mali evaluator, nikada se ne prosljeđuje funkciji eval ili new Function. Unutar [?( … )] možeš koristiti:
@za trenutnu stavku,@.fieldi@['field']za njezine članove,@rootza cijeli dokument ($nije dostupan unutar filtra);- usporedbe
==,!=,===,!==,<,<=,>,>=; - logiku
&&,||,!, aritmetiku+ - * / %i ternarni operatora ? b : c; - literale nizova, brojeva,
true,false,nulli regularnih izraza; - metode samih vrijednosti, na primjer
@.title.startsWith('S'),@.tags.includes('new')ili@.title.match(/lord/i); @property(ključ ili indeks trenutne stavke),@parenti@path(njezina normalizirana putanja), u stilu jsonpath-plusa.
Pristup constructor, __proto__ i konstruktoru Function je blokiran. Ako filtar zakaže na jednoj stavci, na primjer @.isbn.startsWith('0') na knjizi bez isbn, ta se stavka jednostavno ne podudara; sintaksna greška u izrazu se prijavljuje. Filtri napisani prema RFC-u 9535, [?@.price < 10] bez zagrada, prihvaćaju se i čitaju kao [?(@.price < 10)]. Funkcije iz RFC-a 9535 poput length(), count(), match() i search() nisu dostupne: umjesto njih koristi JavaScript metode poput @.name.length.
Selektori tipova iz jsonpath-plusa rade i na kraju putanje: $..*@number() vraća svaki broj, a @string(), @boolean(), @array(), @object(), @null() i @integer() rade isto za ostale tipove.
Česta pitanja
Šalje li se moj JSON na poslužitelj?
Ne. Analiza i izračun odvijaju se u tvom pregledniku, a tvoji podaci nikada ne napuštaju tvoje računalo.
Zašto moj filtar ne vraća ništa?
Provjeri bira li putanja prije filtra polje ili objekt: $.store.book[?(@.price < 10)] filtrira knjige, dok $.store[?(@.price < 10)] gleda book i bicycle. Svojstvo koje nedostaje u stavci je undefined, pa su usporedbe s njim netočne.
Koja je razlika između `==` i `===`?
Kao u JavaScriptu, == pretvara tipove ("10" == 10 je istina), dok === uspoređuje tip i vrijednost.
Zašto je izlaz ograničen?
U rezultat se upisuje samo prvih 10 000 podudaranja kako bi stranica ostala responzivna; statusni redak daje puni broj.
Je li JSONPath standardiziran?
Da, od 2024. godine, RFC-om 9535. Implementacije se i dalje razlikuju, osobito u filtrima; ovaj alat slijedi jsonpath-plus, sintaksu izvornog JSONPatha Stefana Goessnera.
Slični alati
- JSON formater i validator Besplatni JSON formater i validator koji uljepšava, minificira i provjerava JSON u pregledniku, a sintaksne greške prijavljuje s retkom i stupcem.
- JSON Schema validator Provjeri JSON dokument prema JSON Schemi u pregledniku. Svaka greška navedena je s putanjom instance, ključnom riječi i putanjom u shemi.
- Tester regularnih izraza Testiraj JavaScript regularne izraze uživo s istaknutim podudaranjima, skupinama koje hvataju, zamjenom i objašnjenjem svakog dijela uzorka na običnom jeziku.