JSONPath testētājs
Testējiet JSONPath izteiksmes ar savu JSON pārlūkprogrammā. Filtri, griezumi, rekursīva nolaišanās, ceļi un JSON rādītāji, ar gataviem piemēriem.
Kā pārbaudīt JSONPath izteiksmi
- Ielīmējiet savu JSON laukā JSON dati vai noklikšķiniet uz Ielādēt paraugdatus, lai izmantotu klasisko grāmatnīcas piemēru.
- Ierakstiet izteiksmi laukā JSONPath izteiksme vai izvēlieties to sadaļā Piemēri.
- Rezultāts atjaunojas rakstot; Izpildīt vaicājumu palaiž to vēlreiz. Statusa rindiņa norāda atbilstību skaitu.
- Ar Rādīt pārslēdzieties starp Vērtības, Ceļi, JSON rādītāji un Ceļi un vērtības, tad nokopējiet rezultātu.
JSONPath sintakse īsumā
| Sintakse | Nozīme | Piemērs |
|---|---|---|
$ |
dokumenta sakne | $ |
.name vai ['name'] |
pakārtots elements | $.store.bicycle |
* |
katrs pakārtotais elements | $.store.* |
.. |
rekursīva nolaišanās jebkurā dziļumā | $..author |
[n] |
masīva indekss no 0 | $..book[2] |
[start:end:step] |
griezums; negatīvi skaitļi skaita no beigām | $..book[-1:] |
[a,b] |
apvienojums | $..book[0,1] |
[?(expr)] |
filtrs | $..book[?(@.price < 10)] |
^ |
katras atbilstības vecākelements | $..book[?(@.price > 20)]^ |
~ |
īpašības nosaukums vērtības vietā | $.store.*~ |
Rezultāti tiek atgriezti dokumenta secībā. Ceļi dod normalizētus ceļus, piemēram, $['store']['book'][0]['title'], bet JSON rādītāji dod RFC 6901 formu /store/book/0/title, kas ir ērta JSON Patch vai JSON Schema validatoru kļūdu ceļiem.
Filtru izteiksmes: kas tiek atbalstīts
Filtri tiek izvērtēti ar jsonpath-plus drošajā režīmā: izteiksmi parsē un interpretē neliels izvērtētājs, un tā nekad netiek padota eval vai new Function. Iekšpus [?( … )] var izmantot:
@pašreizējam elementam,@.fieldun@['field']tā locekļiem,@rootvisam dokumentam ($filtra iekšpusē nav pieejams);- salīdzinājumus
==,!=,===,!==,<,<=,>,>=; - loģiku
&&,||,!, aritmētiku+ - * / %un trīskāršo operatorua ? b : c; - virknes, skaitļa,
true,false,nullun regulāro izteiksmju literāļus; - pašu vērtību metodes, piemēram,
@.title.startsWith('S'),@.tags.includes('new')vai@.title.match(/lord/i); @property(pašreizējā elementa atslēga vai indekss),@parentun@path(tā normalizētais ceļš) jsonpath-plus stilā.
Piekļuve constructor, __proto__ un Function konstruktoram ir bloķēta. Ja filtrs neizdodas vienam elementam, piemēram, @.isbn.startsWith('0') grāmatai bez isbn, šis elements vienkārši neatbilst; sintakses kļūda izteiksmē tiek uzrādīta. Filtri, kas rakstīti pēc RFC 9535, [?@.price < 10] bez iekavām, tiek pieņemti un nolasīti kā [?(@.price < 10)]. RFC 9535 funkcijas, piemēram, length(), count(), match() un search(), nav pieejamas: tā vietā izmantojiet JavaScript metodes, piemēram, @.name.length.
Tipu selektori no jsonpath-plus darbojas arī ceļa beigās: $..*@number() atgriež katru skaitli, un @string(), @boolean(), @array(), @object(), @null() un @integer() dara to pašu citiem tipiem.
Biežāk uzdotie jautājumi
Vai mans JSON tiek sūtīts uz serveri?
Nē. Parsēšana un izvērtēšana notiek jūsu pārlūkprogrammā, un jūsu dati nekad neatstāj jūsu datoru.
Kāpēc mans filtrs neatgriež neko?
Pārbaudiet, vai ceļš pirms filtra atlasa masīvu vai objektu: $.store.book[?(@.price < 10)] filtrē grāmatas, bet $.store[?(@.price < 10)] skatās uz book un bicycle. Elementa trūkstoša īpašība ir undefined, tāpēc salīdzinājumi ar to ir nepatiesi.
Kāda ir atšķirība starp `==` un `===`?
Tāpat kā JavaScript, == pārveido tipus ("10" == 10 ir patiess), bet === salīdzina tipu un vērtību.
Kāpēc izvade ir ierobežota?
Rezultātā tiek ierakstītas tikai pirmās 10 000 atbilstības, lai lapa paliktu atsaucīga; statusa rindiņa norāda pilnu skaitu.
Vai JSONPath ir standartizēts?
Jā, kopš 2024. gada ar RFC 9535. Implementācijas joprojām atšķiras, īpaši filtros; šis rīks seko jsonpath-plus – Stefana Goessnera oriģinālā JSONPath sintaksei.
Saistītie rīki
- JSON formatētājs un validators Bezmaksas JSON formatētājs un validators, kas sakārto, minimizē un pārbauda JSON jūsu pārlūkprogrammā, norādot sintakses kļūdas rindu un kolonnu.
- JSON Schema validators Pārbaudiet JSON dokumentu pret JSON Schema pārlūkprogrammā. Katra kļūda tiek uzskaitīta ar instances ceļu, atslēgvārdu un shēmas ceļu.
- Regex testētājs Pārbaudiet JavaScript regulārās izteiksmes uzreiz: izceltas atbilsmes, tveršanas grupas, aizvietošana un katras daļas skaidrojums vienkāršā valodā.