JSONPath testuotojas
Išbandyk JSONPath išraiškas su savo JSON naršyklėje. Filtrai, iškarpos, rekursinis nusileidimas, keliai ir JSON Pointer su paruoštais pavyzdžiais.
Kaip išbandyti JSONPath išraišką
- Įklijuok savo JSON į JSON duomenys arba spustelėk Įkelti pavyzdinius duomenis, kad naudotum klasikinį knygyno pavyzdį.
- Įrašyk išraišką į JSONPath išraiška arba pasirink ją iš Pavyzdžiai.
- Rezultatas atsinaujina tau rašant; Vykdyti užklausą paleidžia iš naujo. Būsenos eilutė nurodo atitikmenų skaičių.
- Su Rodyti perjunk Reikšmes, Kelius, JSON Pointer ir Kelius ir reikšmes, tada nukopijuok rezultatą.
JSONPath sintaksė trumpai
| Sintaksė | Reikšmė | Pavyzdys |
|---|---|---|
$ |
dokumento šaknis | $ |
.name arba ['name'] |
vaikas | $.store.bicycle |
* |
kiekvienas vaikas | $.store.* |
.. |
rekursinis nusileidimas, bet kokiame gylyje | $..author |
[n] |
masyvo indeksas, nuo 0 | $..book[2] |
[start:end:step] |
iškarpa; neigiami skaičiai skaičiuojami nuo galo | $..book[-1:] |
[a,b] |
sąjunga | $..book[0,1] |
[?(expr)] |
filtras | $..book[?(@.price < 10)] |
^ |
kiekvieno atitikmens tėvas | $..book[?(@.price > 20)]^ |
~ |
savybės pavadinimas vietoj reikšmės | $.store.*~ |
Rezultatai grąžinami dokumento tvarka. Kelius pateikia normalizuotus kelius, pavyzdžiui, $['store']['book'][0]['title'], o JSON Pointer – RFC 6901 formą /store/book/0/title, patogią JSON Patch ar JSON Schema tikrintuvų klaidų keliams.
Filtrų išraiškos: kas palaikoma
Filtrai vertinami su jsonpath-plus saugiuoju režimu: išraišką išanalizuoja ir interpretuoja nedidelis vertintojas, ji niekada nepaduodama į eval ar new Function. Viduje [?( … )] gali naudoti:
@dabartiniam elementui,@.fieldir@['field']jo nariams,@rootvisam dokumentui ($filtre neprieinamas);- palyginimus
==,!=,===,!==,<,<=,>,>=; - logiką
&&,||,!, aritmetiką+ - * / %ir trinarį operatoriųa ? b : c; - eilutės, skaičiaus,
true,false,nullir reguliariųjų reiškinių literalus; - pačių reikšmių metodus, pavyzdžiui,
@.title.startsWith('S'),@.tags.includes('new')ar@.title.match(/lord/i); @property(dabartinio elemento raktą ar indeksą),@parentir@path(jo normalizuotą kelią) jsonpath-plus stiliumi.
Prieiga prie constructor, __proto__ ir Function konstruktoriaus užblokuota. Jei filtras nepavyksta vienam elementui, pavyzdžiui, @.isbn.startsWith('0') knygai be isbn, tas elementas tiesiog neatitinka; sintaksės klaida išraiškoje pranešama. Filtrai, užrašyti RFC 9535 būdu, [?@.price < 10] be skliaustų, priimami ir skaitomi kaip [?(@.price < 10)]. RFC 9535 funkcijos, tokios kaip length(), count(), match() ir search(), neprieinamos: vietoj jų naudok JavaScript metodus, pavyzdžiui, @.name.length.
Tipų parinkikliai iš jsonpath-plus taip pat veikia kelio gale: $..*@number() grąžina kiekvieną skaičių, o @string(), @boolean(), @array(), @object(), @null() ir @integer() tą patį daro kitiems tipams.
Dažnai užduodami klausimai
Ar mano JSON siunčiamas į serverį?
Ne. Analizė ir vertinimas vyksta tavo naršyklėje, o duomenys niekada nepalieka tavo kompiuterio.
Kodėl mano filtras nieko negrąžina?
Patikrink, ar kelias prieš filtrą parenka masyvą ar objektą: $.store.book[?(@.price < 10)] filtruoja knygas, o $.store[?(@.price < 10)] žiūri į book ir bicycle. Elemente nesanti savybė yra undefined, todėl palyginimai su ja yra klaidingi.
Kuo skiriasi `==` ir `===`?
Kaip JavaScript, == konvertuoja tipus ("10" == 10 yra teisinga), o === lygina tipą ir reikšmę.
Kodėl išvestis ribojama?
Į rezultatą įrašoma tik pirmieji 10 000 atitikmenų, kad puslapis išliktų greitas; būsenos eilutė nurodo visą skaičių.
Ar JSONPath standartizuotas?
Taip, nuo 2024 m., pagal RFC 9535. Realizacijos vis dar skiriasi, ypač filtruose; šis įrankis laikosi jsonpath-plus – Stefano Goessnerio originalaus JSONPath sintaksės.
Susiję įrankiai
- JSON formatuotojas ir tikrintuvas Nemokamas JSON formatuotojas ir tikrintuvas, kuris naršyklėje sutvarko, minimizuoja ir tikrina JSON, o sintaksės klaidas nurodo su eilute ir stulpeliu.
- JSON Schema tikrintuvas Patikrink JSON dokumentą pagal JSON Schema naršyklėje. Kiekviena klaida išvardyta su egzemplioriaus keliu, raktažodžiu ir schemos keliu.
- Regex testuoklis Testuok JavaScript reguliariąsias išraiškas gyvai: paryškinti atitikmenys, fiksuojančios grupės, pakeitimas ir paprastas kiekvieno elemento paaiškinimas.