JSONPath-tester
Lim inn JSON og test JSONPath-uttrykk interaktivt. Se samsvarende resultater i sanntid, med eksempelbaner for rask start.
Inndata
Utdata
Les meg
Hva er JSONPath?
JSONPath er et spørrespråk for JSON, på samme måte som XPath fungerer for XML. Det lar deg navigere og hente ut data fra en JSON-struktur ved hjelp av stieruttrykk. Et JSONPath-uttrykk starter med $, som representerer roten av dokumentet, og bruker punktnotasjon (.key) eller hakeparentesnotasjon (['key']) for å traversere objekter, og [index] for å få tilgang til matriseelementer.
JSONPath ble opprinnelig beskrevet av Stefan Gössner i 2007 og har siden blitt en mye brukt standard i APIer, testingsrammeverk og dataprosesseringspipelines. Det støttes i mange språk og verktøy, inkludert JavaScript, Python, Java, og databaser som PostgreSQL og MySQL.
Verktøybeskrivelse
Dette verktøyet lar deg lime inn et hvilket som helst gyldig JSON-dokument og skrive et JSONPath-uttrykk for å spørre det. Resultater vises øyeblikkelig mens du skriver, og viser alle samsvarende verdier som en formatert JSON-matrise. Antallet treff vises separat slik at du raskt kan kontrollere hvor mange noder som ble valgt.
Eksempler
Inndata-JSON:
{
"store": {
"book": [
{ "title": "Moby Dick", "price": 8.99, "category": "fiction" },
{ "title": "War and Peace", "price": 12.5, "category": "fiction" },
{
"title": "A Brief History of Time",
"price": 7.99,
"category": "science"
}
]
}
}| Uttrykk | Resultat |
|---|---|
$.store.book[*].title |
Alle boktitler |
$.store.book[0] |
Første bokobjekt |
$.store.book[?(@.price < 10)] |
Bøker billigere enn $10 |
$.store.book[?(@.category == "fiction")] |
Kun skjønnlitteraturbøker |
$..price |
Alle prisverdier hvor som helst i dokumentet |
Funksjoner
- Evaluering i sanntid — resultater oppdateres mens du skriver uttrykket eller redigerer JSON
- Viser antallet treff i et dedikert felt
- Kopieringsknapp på uttrykksfeltet for rask gjenbruk
- Limeknapp for raskt å sette inn JSON eller uttrykk fra utklippstavlen
- Feilrapportering for ugyldig JSON eller malformerte stieruttrykk
Hvordan det fungerer
JSONPath-uttrykk evalueres mot den analyserte JSON ved hjelp av jsonpath-plus-biblioteket. $-symbolet refererer til rotelementet. Undernoder får tilgang med . eller [], jokertegn med *, rekursiv nedstigning med .., og filtre med [?(...)]. Resultatet er alltid en matrise med samsvarende verdier, selv om bare ett treff blir funnet.
Alternativer forklart
| Syntaks | Betydning |
|---|---|
$ |
Rotelement |
.key eller ['key'] |
Underordnet egenskap |
[*] |
Alle matriseelementer |
[0] |
Første matriseelement (nullindeksert) |
[-1] |
Siste matriseelement |
[0,2] |
Elementer ved indeks 0 og 2 |
[0:2] |
Elementer fra indeks 0 til 1 (slice) |
..key |
Rekursiv nedstigning — finn key på hvilken som helst dybde |
[?(@.price > 5)] |
Filter — elementer der price er større enn 5 |
@ |
Gjeldende node (brukt inne i filteruttrykk) |
Brukstilfeller
- API-utvikling — verifiser at en JSONPath-velger som brukes i en REST-klient, testpakke eller datakartleggingsverktøy henter de forventede feltene fra et API-svar
- Datatransformasjon — identifiser hvilke verdier som skal hentes fra nestede JSON-nyttelaster før du skriver et transformasjonsskript
- Lær JSONPath — eksperimenter med stiyntaks interaktivt for å forstå hvordan operatorer som
..,[*]og[?()]oppfører seg på virkelige data
Tips
- Bruk
$..*for å få hver eneste verdi i hele dokumentet — nyttig for å utforske ukjente JSON-strukturer. - Filteruttrykk støtter sammenligninger (
==,!=,<,>,<=,>=) og kan referere til nestede egenskaper:[?(@.author.name == "Rees")]. - For å samsvare en egenskap uavhengig av dens dybde, bruk
..rekursiv nedstigning:$..titlefinner alletitle-felt hvor som helst i dokumentet.