Testuesi i JSONPath
Testo shprehje JSONPath mbi JSON-in tënd në shfletues. Filtra, prerje, zbritje rekursive, shtigje dhe JSON Pointers, me shembuj të gatshëm.
Si ta testosh një shprehje JSONPath
- Ngjit JSON-in tënd te Të dhënat JSON, ose kliko Ngarko të dhëna shembull për të përdorur shembullin klasik të librarisë.
- Shkruaj një shprehje te Shprehja JSONPath, ose zgjidh një nga Shembuj.
- Rezultati përditësohet ndërsa shkruan; Ekzekuto kërkimin e ekzekuton përsëri. Rreshti i gjendjes jep numrin e përputhjeve.
- Përdor Shfaq për të kaluar mes Vlerat, Shtigjet, JSON Pointers dhe Shtigjet dhe vlerat, pastaj kopjo rezultatin.
Sintaksa e JSONPath shkurtimisht
| Sintaksa | Kuptimi | Shembull |
|---|---|---|
$ |
rrënja e dokumentit | $ |
.name ose ['name'] |
një fëmijë | $.store.bicycle |
* |
çdo fëmijë | $.store.* |
.. |
zbritje rekursive, në çdo thellësi | $..author |
[n] |
indeksi i vargut, nga 0 | $..book[2] |
[start:end:step] |
prerje; numrat negativë numërojnë nga fundi | $..book[-1:] |
[a,b] |
bashkim | $..book[0,1] |
[?(expr)] |
filtër | $..book[?(@.price < 10)] |
^ |
prindi i secilës përputhje | $..book[?(@.price > 20)]^ |
~ |
emri i vetisë në vend të vlerës | $.store.*~ |
Rezultatet kthehen sipas radhës së dokumentit. Shtigjet jep shtigje të normalizuara si $['store']['book'][0]['title'], dhe JSON Pointers jep formën RFC 6901 /store/book/0/title, të dobishme për JSON Patch ose për shtigjet e gabimeve të vlerësuesve të JSON Schema.
Shprehjet e filtrit: çfarë mbështetet
Filtrat vlerësohen me jsonpath-plus në modalitet të sigurt: shprehja analizohet dhe interpretohet nga një vlerësues i vogël, nuk i kalohet kurrë eval ose new Function. Brenda [?( … )] mund të përdorësh:
@për elementin aktual,@.fielddhe@['field']për anëtarët e tij,@rootpër të gjithë dokumentin ($nuk është i disponueshëm brenda një filtri);- krahasimet
==,!=,===,!==,<,<=,>,>=; - logjikën
&&,||,!, aritmetikën+ - * / %dhe ternarina ? b : c; - literale vargje, numra,
true,false,nulldhe shprehje të rregullta; - metodat e vetë vlerave, për shembull
@.title.startsWith('S'),@.tags.includes('new')ose@.title.match(/lord/i); @property(çelësi ose indeksi i elementit aktual),@parentdhe@path(shtegu i tij i normalizuar), në stilin e jsonpath-plus.
Qasja te constructor, __proto__ dhe konstruktori Function është e bllokuar. Nëse një filtër dështon në një element, për shembull @.isbn.startsWith('0') në një libër pa isbn, ai element thjesht nuk përputhet; një gabim sintakse në shprehje raportohet. Filtrat e shkruar sipas RFC 9535, [?@.price < 10] pa kllapa, pranohen dhe lexohen si [?(@.price < 10)]. Funksionet e RFC 9535 si length(), count(), match() dhe search() nuk janë të disponueshme: përdor në vend të tyre metoda JavaScript si @.name.length.
Përzgjedhësit e tipit të jsonpath-plus funksionojnë edhe në fund të një shtegu: $..*@number() kthen çdo numër, dhe @string(), @boolean(), @array(), @object(), @null() dhe @integer() bëjnë të njëjtën gjë për tipe të tjera.
Pyetje të shpeshta
A dërgohet JSON-i im te një server?
Jo. Analizimi dhe vlerësimi bëhen në shfletuesin tënd, dhe të dhënat e tua nuk largohen kurrë nga kompjuteri yt.
Pse filtri im nuk kthen asgjë?
Kontrollo që shtegu para filtrit përzgjedh një varg ose objekt: $.store.book[?(@.price < 10)] filtron librat, ndërsa $.store[?(@.price < 10)] shikon book dhe bicycle. Një veti që mungon në një element është undefined, ndaj krahasimet me të janë false.
Cili është ndryshimi mes `==` dhe `===`?
Si në JavaScript, == konverton tipet ("10" == 10 është true) ndërsa === krahason tipin dhe vlerën.
Pse dalja është e kufizuar?
Në rezultat shkruhen vetëm 10 000 përputhjet e para, që faqja të mbetet e përgjegjshme; rreshti i gjendjes jep numrin e plotë.
A është JSONPath i standardizuar?
Po, që nga viti 2024, nga RFC 9535. Zbatimet ende ndryshojnë, sidomos te filtrat; ky mjet ndjek jsonpath-plus, sintaksën e JSONPath-it origjinal të Stefan Goessner.
Mjete të ngjashme
- Formatuesi dhe vlerësuesi i JSON Formatues dhe vlerësues JSON falas që bukuron, minifikon dhe kontrollon JSON në shfletuesin tënd, me gabimet e sintaksës sipas rreshtit dhe kolonës.
- Vlerësuesi i JSON Schema Vlerëso një dokument JSON kundrejt një JSON Schema në shfletuesin tënd. Çdo gabim listohet me shtegun e instancës, fjalën kyçe dhe shtegun e skemës.
- Testues regex Testo shprehje të rregullta JavaScript drejtpërdrejt me përputhje të theksuara, grupe kapëse, zëvendësim dhe një shpjegim të thjeshtë të çdo token-i të modelit.