JSONPath-testare
Klistra in JSON och testa JSONPath-uttryck interaktivt. Se matchande resultat i realtid, med exempelsökvägar för att komma igång snabbt.
Inmatning
Utdata
Readme
Vad är JSONPath?
JSONPath är ett frågespråk för JSON, på samma sätt som XPath fungerar för XML. Det låter dig navigera och extrahera data från en JSON-struktur med hjälp av sökvägsuttryck. Ett JSONPath-uttryck börjar med $, som representerar dokumentets rot, och använder punktnotation (.key) eller hakparentesnotation (['key']) för att traversera objekt, och [index] för att komma åt arrayelement.
JSONPath beskrevs ursprungligen av Stefan Gössner 2007 och har sedan dess blivit en allmänt använd standard i API:er, testramverk och databelhandlingspipelines. Det stöds i många språk och verktyg, inklusive JavaScript, Python, Java och databaser som PostgreSQL och MySQL.
Verktygsöversikt
Det här verktyget låter dig klistra in ett giltigt JSON-dokument och skriva ett JSONPath-uttryck för att fråga det. Resultaten visas direkt när du skriver och visar alla matchande värden som en formaterad JSON-array. Antalet matchningar visas separat så att du snabbt kan verifiera hur många noder som valdes.
Exempel
Inmatnings-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"
}
]
}
}| Uttryck | Resultat |
|---|---|
$.store.book[*].title |
Alla bokstitlar |
$.store.book[0] |
Första bokobjekt |
$.store.book[?(@.price < 10)] |
Böcker billigare än $10 |
$.store.book[?(@.category == "fiction")] |
Endast skönlitteraturböcker |
$..price |
Alla prisvärden var som helst i dokumentet |
Funktioner
- Realtidsutvärdering — resultaten uppdateras när du skriver uttrycket eller redigerar JSON
- Visar antalet matchningar i ett dedikerat fält
- Kopieringsknapp på uttrycksfältet för snabb återanvändning
- Klistra in-knapp för att snabbt infoga JSON eller uttryck från urklipp
- Felrapportering för ogiltig JSON eller felformade sökvägsuttryck
Hur det fungerar
JSONPath-uttryck utvärderas mot den parsade JSON med hjälp av biblioteket jsonpath-plus. Symbolen $ refererar till rotelementet. Underordnade noder nås med . eller [], jokertecken med *, rekursiv nedstigning med .. och filter med [?(...)]. Resultatet är alltid en array med matchande värden, även om endast en matchning hittas.
Alternativ förklarade
| Syntax | Betydelse |
|---|---|
$ |
Rotelementet |
.key eller ['key'] |
Underordnad egenskap |
[*] |
Alla arrayelement |
[0] |
Första arrayelement (nollindexerat) |
[-1] |
Sista arrayelement |
[0,2] |
Element vid index 0 och 2 |
[0:2] |
Element från index 0 till 1 (sekvens) |
..key |
Rekursiv nedstigning — hitta key på vilket djup som helst |
[?(@.price > 5)] |
Filter — element där price är större än 5 |
@ |
Aktuell nod (används i filteruttryck) |
Användningsfall
- API-utveckling — verifiera att en JSONPath-väljare som används i en REST-klient, testsvit eller datamappningsverktyg extraherar de förväntade fälten från ett API-svar
- Datatransformation — identifiera vilka värden som ska extraheras från kapslade JSON-nyttolaster innan du skriver ett transformationsskript
- Lära sig JSONPath — experimentera interaktivt med sökvägssyntax för att förstå hur operatorer som
..,[*]och[?()]fungerar på verklig data
Tips
- Använd
$..*för att få varje enskilt värde i hela dokumentet — användbart för att utforska okända JSON-strukturer. - Filteruttryck stöder jämförelser (
==,!=,<,>,<=,>=) och kan referera till kapslade egenskaper:[?(@.author.name == "Rees")]. - För att matcha en egenskap oavsett dess djup använder du
..rekursiv nedstigning:$..titlehittar allatitle-fält var som helst i dokumentet.