JSONPath teszter
Teszteld a JSONPath-kifejezéseket a saját JSON-odon a böngészőben. Szűrők, szeletek, rekurzív bejárás, útvonalak és JSON Pointerek, kész példákkal.
Hogyan teszteld a JSONPath-kifejezést
- Illeszd be a JSON-t a JSON-adatok mezőbe, vagy kattints a Mintaadatok betöltése gombra a klasszikus könyvesbolt-példa használatához.
- Írj be egy kifejezést a JSONPath-kifejezés mezőbe, vagy válassz egyet a Példák közül.
- Az eredmény gépelés közben frissül; a Lekérdezés futtatása gomb újra lefuttatja. Az állapotsor megadja a találatok számát.
- A Megjelenítés beállítással válthatsz az Értékek, az Útvonalak, a JSON Pointerek és az Útvonalak és értékek között, majd másold ki az eredményt.
A JSONPath szintaxisa dióhéjban
| Szintaxis | Jelentés | Példa |
|---|---|---|
$ |
a dokumentum gyökere | $ |
.name vagy ['name'] |
egy gyermek | $.store.bicycle |
* |
minden gyermek | $.store.* |
.. |
rekurzív bejárás, bármilyen mélységben | $..author |
[n] |
tömbindex, 0-tól | $..book[2] |
[start:end:step] |
szelet; a negatív számok a végétől számolnak | $..book[-1:] |
[a,b] |
unió | $..book[0,1] |
[?(expr)] |
szűrő | $..book[?(@.price < 10)] |
^ |
az egyes találatok szülője | $..book[?(@.price > 20)]^ |
~ |
az érték helyett a tulajdonságnév | $.store.*~ |
Az eredmények dokumentumsorrendben érkeznek. Az Útvonalak normalizált útvonalakat ad, például $['store']['book'][0]['title'], a JSON Pointerek pedig az RFC 6901 szerinti /store/book/0/title alakot, amely a JSON Patchhez vagy a JSON Schema validátorok hibaútvonalaihoz praktikus.
Szűrőkifejezések: mi támogatott
A szűrőket a jsonpath-plus biztonságos módban értékeli ki: a kifejezést egy kis kiértékelő elemzi és értelmezi, soha nem adja át az eval vagy a new Function függvénynek. A [?( … )] belsejében használhatod:
- az
@jelet az aktuális elemre, az@.fieldés@['field']alakot a tagjaira, az@rootjelet a teljes dokumentumra (a$nem érhető el a szűrőn belül); - az
==,!=,===,!==,<,<=,>,>=összehasonlításokat; - az
&&,||,!logikát, a+ - * / %aritmetikát és a háromoperandusúa ? b : ckifejezést; - karakterlánc-, szám-,
true,false,nullés reguláris kifejezés literálokat; - magának az értéknek a metódusait, például
@.title.startsWith('S'),@.tags.includes('new')vagy@.title.match(/lord/i); - az
@property(az aktuális elem kulcsa vagy indexe), az@parentés az@path(a normalizált útvonala) jelölést, jsonpath-plus stílusban.
A constructor, a __proto__ és a Function konstruktor elérése tiltott. Ha egy szűrő egy elemnél hibázik, például az @.isbn.startsWith('0') egy isbn nélküli könyvnél, az az elem egyszerűen nem egyezik; a kifejezés szintaktikai hibáját az eszköz jelzi. Az RFC 9535 szerinti szűrőket, a [?@.price < 10] alakot zárójelek nélkül, elfogadja, és [?(@.price < 10)] alakban olvassa be. Az RFC 9535 függvényei, mint a length(), count(), match() és search(), nem érhetők el: használj helyette JavaScript-metódusokat, például az @.name.length kifejezést.
A jsonpath-plus típusválasztói az útvonal végén is működnek: a $..*@number() minden számot visszaad, az @string(), @boolean(), @array(), @object(), @null() és @integer() pedig a többi típusra teszi ugyanezt.
Gyakori kérdések
Elküldésre kerül a JSON-om egy szervernek?
Nem. Az elemzés és a kiértékelés a böngésződben történik, az adataid soha nem hagyják el a számítógépedet.
Miért nem ad vissza semmit a szűrőm?
Ellenőrizd, hogy a szűrő előtti útvonal tömböt vagy objektumot választ-e ki: a $.store.book[?(@.price < 10)] a könyveket szűri, a $.store[?(@.price < 10)] viszont a book és a bicycle elemet nézi. Az elemből hiányzó tulajdonság undefined, ezért az összehasonlítások vele hamisak.
Mi a különbség az `==` és a `===` között?
Ahogy a JavaScriptben, az == típust konvertál (a "10" == 10 igaz), a === pedig a típust és az értéket is összehasonlítja.
Miért korlátozott a kimenet?
Az eredménybe csak az első 10 000 találat kerül, hogy az oldal reszponzív maradjon; az állapotsor megadja a teljes számot.
Szabványosított a JSONPath?
Igen, 2024 óta az RFC 9535 által. A megvalósítások még mindig eltérnek, főként a szűrőknél; ez az eszköz a jsonpath-plus-t követi, Stefan Goessner eredeti JSONPath szintaxisát.
Kapcsolódó eszközök
- JSON formázó és validátor Ingyenes JSON formázó és validátor, amely a böngésződben szépít, tömörít és ellenőriz JSON-t, a szintaxishibákat sor és oszlop szerint jelezve.
- JSON Schema validátor Ellenőrizz egy JSON-dokumentumot JSON Schema alapján a böngésződben. Minden hibát kilistáz a példány útvonalával, kulcsszavával és a séma útvonalával.
- Regex-teszter Tesztelj JavaScript reguláris kifejezéseket élőben: kiemelt találatok, rögzítő csoportok, csere és minden elem magyarázata közérthető nyelven.