JSONPath-tester
Test JSONPath-uttrykk på din egen JSON i nettleseren. Filtre, utsnitt, rekursiv nedstigning, stier og JSON Pointers, med ferdige eksempler.
Slik tester du et JSONPath-uttrykk
- Lim inn JSON-en i JSON-data, eller klikk Last inn eksempeldata for å bruke det klassiske bokhandel-eksempelet.
- Skriv et uttrykk i JSONPath-uttrykk, eller velg et under Eksempler.
- Resultatet oppdateres mens du skriver, og Kjør spørring kjører det på nytt. Statuslinjen oppgir antall treff.
- Bruk Vis for å bytte mellom Verdier, Stier, JSON Pointers og Stier og verdier, og kopier deretter resultatet.
JSONPath-syntaks i et nøtteskall
| Syntaks | Betydning | Eksempel |
|---|---|---|
$ |
roten i dokumentet | $ |
.name eller ['name'] |
et barn | $.store.bicycle |
* |
alle barn | $.store.* |
.. |
rekursiv nedstigning, på alle nivåer | $..author |
[n] |
listeindeks, fra 0 | $..book[2] |
[start:end:step] |
utsnitt, negative tall teller fra slutten | $..book[-1:] |
[a,b] |
union | $..book[0,1] |
[?(expr)] |
filter | $..book[?(@.price < 10)] |
^ |
forelderen til hvert treff | $..book[?(@.price > 20)]^ |
~ |
egenskapsnavnet i stedet for verdien | $.store.*~ |
Resultatene returneres i dokumentrekkefølge. Stier gir normaliserte stier som $['store']['book'][0]['title'], og JSON Pointers gir RFC 6901-formen /store/book/0/title, praktisk for JSON Patch eller for feilstiene fra JSON Schema-validatorer.
Filteruttrykk: hva som støttes
Filtre evalueres med jsonpath-plus i trygg modus: uttrykket tolkes av en liten evaluator og sendes aldri til eval eller new Function. Inne i [?( … )] kan du bruke:
@for gjeldende element,@.fieldog@['field']for medlemmene, og@rootfor hele dokumentet ($er ikke tilgjengelig inne i et filter)- sammenligninger
==,!=,===,!==,<,<=,>,>= - logikk
&&,||,!, aritmetikk+ - * / %og den ternære operatorena ? b : c - strenger, tall,
true,false,nullog regulære uttrykk som literaler - metoder på selve verdiene, for eksempel
@.title.startsWith('S'),@.tags.includes('new')eller@.title.match(/lord/i) @property(nøkkelen eller indeksen til gjeldende element),@parentog@path(den normaliserte stien), i jsonpath-plus-stil
Tilgang til constructor, __proto__ og Function-konstruktøren er blokkert. Hvis et filter feiler på ett element, for eksempel @.isbn.startsWith('0') på en bok uten isbn, matcher bare ikke det elementet. En syntaksfeil i uttrykket blir meldt. Filtre skrevet på RFC 9535-måten, [?@.price < 10] uten parenteser, godtas og leses som [?(@.price < 10)]. RFC 9535-funksjoner som length(), count(), match() og search() er ikke tilgjengelige: bruk JavaScript-metoder som @.name.length i stedet.
Typevelgere fra jsonpath-plus fungerer også på slutten av en sti: $..*@number() returnerer alle tall, og @string(), @boolean(), @array(), @object(), @null() og @integer() gjør det samme for andre typer.
Ofte stilte spørsmål
Sendes JSON-en min til en server?
Nei. Tolking og evaluering skjer i nettleseren din, og dataene dine forlater aldri datamaskinen din.
Hvorfor gir filteret mitt ingenting?
Sjekk at stien før filteret velger en liste eller et objekt: $.store.book[?(@.price < 10)] filtrerer bøkene, mens $.store[?(@.price < 10)] ser på book og bicycle. En egenskap som mangler på et element, er undefined, så sammenligninger med den er usanne.
Hva er forskjellen på `==` og `===`?
Som i JavaScript konverterer == typer ("10" == 10 er sant), mens === sammenligner både type og verdi.
Hvorfor er resultatet begrenset?
Bare de første 10 000 treffene skrives til resultatet, for at siden skal holde seg responsiv. Statuslinjen oppgir det fulle antallet.
Er JSONPath standardisert?
Ja, siden 2024, av RFC 9535. Implementasjonene er fortsatt ulike, særlig i filtre. Dette verktøyet følger jsonpath-plus, syntaksen i Stefan Goessners opprinnelige JSONPath.
Relaterte verktøy
- JSON-formaterer og -validator Gratis JSON-formaterer og -validator som gjør JSON ryddig, minifiserer og kontrollerer den i nettleseren din, med syntaksfeil oppgitt med linje og kolonne.
- JSON Schema-validator Valider et JSON-dokument mot et JSON Schema i nettleseren din. Hver feil listes med forekomststi, nøkkelord og schema-sti. Feilmeldingene er på engelsk.
- Regex-tester Test regulære uttrykk i JavaScript live, med uthevede treff, fangstgrupper, erstatning og en forklaring på vanlig norsk av hvert enkelt element i mønsteret.