JSONPath-prófari
Prófaðu JSONPath-segðir á þínu eigin JSON í vafranum. Síur, sneiðar, endurkvæm niðurstigning, slóðir og JSON Pointer, með tilbúnum dæmum.
Hvernig á að prófa JSONPath-segð
- Límdu JSON-ið þitt í JSON-gögn, eða smelltu á Hlaða inn sýnishorni til að nota klassíska bókabúðardæmið.
- Sláðu inn segð í JSONPath-segð, eða veldu eina úr Dæmi.
- Niðurstaðan uppfærist á meðan þú skrifar; Keyra fyrirspurn keyrir hana aftur. Stöðulínan gefur fjölda samsvarana.
- Notaðu Sýna til að skipta á milli Gildi, Slóðir, JSON Pointer og Slóðir og gildi og afritaðu síðan niðurstöðuna.
JSONPath-setningafræði í stuttu máli
| Setningafræði | Merking | Dæmi |
|---|---|---|
$ |
rót skjalsins | $ |
.name eða ['name'] |
undirþáttur | $.store.bicycle |
* |
hver undirþáttur | $.store.* |
.. |
endurkvæm niðurstigning, á hvaða dýpt sem er | $..author |
[n] |
fylkisvísir, frá 0 | $..book[2] |
[start:end:step] |
sneið; neikvæðar tölur telja frá endanum | $..book[-1:] |
[a,b] |
sammengi | $..book[0,1] |
[?(expr)] |
sía | $..book[?(@.price < 10)] |
^ |
foreldri hverrar samsvörunar | $..book[?(@.price > 20)]^ |
~ |
eigindaheitið í stað gildisins | $.store.*~ |
Niðurstöður eru skilaðar í röð skjalsins. Slóðir gefur staðlaðar slóðir eins og $['store']['book'][0]['title'] og JSON Pointer gefur RFC 6901-formið /store/book/0/title, hentugt fyrir JSON Patch eða villuslóðir JSON Schema-sannprófara.
Síusegðir: hvað er stutt
Síur eru metnar með jsonpath-plus í öruggum ham: segðin er þáttuð og túlkuð af litlum matara, aldrei send í eval eða new Function. Inni í [?( … )] geturðu notað:
@fyrir núverandi atriði,@.fieldog@['field']fyrir meðlimi þess,@rootfyrir allt skjalið ($er ekki í boði inni í síu);- samanburð
==,!=,===,!==,<,<=,>,>=; - rökvirkja
&&,||,!, reikniaðgerðir+ - * / %og þrenndarvirkjanna ? b : c; - strengi, tölur,
true,false,nullog bókstafsgildi reglulegra segða; - aðferðir gildanna sjálfra, til dæmis
@.title.startsWith('S'),@.tags.includes('new')eða@.title.match(/lord/i); @property(lykill eða vísir núverandi atriðis),@parentog@path(staðlaða slóð þess), að hætti jsonpath-plus.
Aðgangur að constructor, __proto__ og Function-smiðnum er lokaður. Ef sía bregst á einu atriði, til dæmis @.isbn.startsWith('0') á bók án isbn, passar það atriði einfaldlega ekki; setningafræðivilla í segðinni er tilkynnt. Síur skrifaðar að hætti RFC 9535, [?@.price < 10] án sviga, eru samþykktar og lesnar sem [?(@.price < 10)]. RFC 9535-föll eins og length(), count(), match() og search() eru ekki í boði: notaðu JavaScript-aðferðir eins og @.name.length í staðinn.
Tegundaveljarar frá jsonpath-plus virka líka aftast í slóð: $..*@number() skilar hverri tölu og @string(), @boolean(), @array(), @object(), @null() og @integer() gera það sama fyrir aðrar tegundir.
Algengar spurningar
Er JSON-ið mitt sent á netþjón?
Nei. Þáttun og mat fer fram í vafranum þínum og gögnin þín fara aldrei úr tölvunni þinni.
Af hverju skilar sían minni engu?
Athugaðu að slóðin á undan síunni velji fylki eða hlut: $.store.book[?(@.price < 10)] síar bækurnar, en $.store[?(@.price < 10)] skoðar book og bicycle. Eigindi sem vantar í atriði er undefined, svo samanburður við það er ósatt.
Hver er munurinn á `==` og `===`?
Eins og í JavaScript umbreytir == tegundum ("10" == 10 er satt) en === ber saman tegund og gildi.
Af hverju er úttakið takmarkað?
Aðeins fyrstu 10 000 samsvaranirnar eru skrifaðar í niðurstöðuna, til að halda síðunni viðbragðsfljótri; stöðulínan gefur heildarfjöldann.
Er JSONPath staðlað?
Já, frá 2024, með RFC 9535. Útfærslur eru þó enn ólíkar, sérstaklega í síum; þetta verkfæri fylgir jsonpath-plus, setningafræði upprunalega JSONPath Stefans Goessner.
Tengd verkfæri
- JSON-sniðari og sannprófari Ókeypis JSON-sniðari og sannprófari sem fegrar, smækkar og athugar JSON í vafranum, með setningafræðivillum eftir línu og dálki.
- JSON Schema sannprófari Sannprófaðu JSON-skjal gagnvart JSON Schema í vafranum. Hver villa er talin upp með slóð tilviks, lykilorði og slóð í schema.
- Regex-prófari Prófaðu JavaScript-reglulegar segðir í beinni með lituðum samsvörunum, söfnunarhópum, útskiptingu og skýringu á hverju tákni á venjulegu máli.