JSONPath-testare
Klistra in ett JSON-dokument och skriv ett JSONPath-uttryck som $..book[?(@.price<10)]. Testaren utvärderar det mot dokumentet och visar varje matchande värde, med den exakta sökvägen för varje matchning. Användbart för att validera frågan du tänker klistra in i ett skript eller en API-specifikation (Postman, k6, JMeter talar alla JSONPath).
Så testar du ett JSONPath-uttryck
-
1
Klistra in JSON-dokumentet
Valfri giltig JSON: objekt, array, djupt nästlad.
-
2
Skriv uttrycket
Börja med `$` för rot. Använd `.` för barn, `..` för rekursivt nedstigande, `[*]` för jokertecken.
-
3
Se matchningarna i realtid
Varje matchning visas med sitt värde och fullständig JSONPath, markerad i originaldokumentet.
-
4
Kopiera resultaten
Kopiera matchningar som en JSON-array, eller kopiera varje enskild sökväg för användning i nedströmskod.
JSONPath-syntaxreferens
| Uttryck | Betydelse |
|---|---|
$ |
Rotelement |
$.store |
Barn till $ med namnet store |
$["store"] |
Samma, hakparentesform |
$..author |
Alla author-egenskaper på valfritt djup |
$.store.book[*] |
Varje bok i butiken |
$.store.book[0] |
Första boken |
$.store.book[-1:] |
Sista boken |
$.store.book[0:2] |
Första två böckerna (slice) |
$.store.book[?(@.isbn)] |
Böcker med en isbn-egenskap |
$.store.book[?(@.price < 10)] |
Böcker billigare än 10 |
$.store.book[?(@.category == "fiction")] |
Skönlitterära böcker |
$..* |
Varje värde, överallt |
Filteruttryck
Filteruttryck använder @ för att referera till den aktuella noden. Testaren stöder de vanliga operatorerna ==, !=, <, >, <=, >=, &&, || och regex =~.
$.items[?(@.qty >= 10 && @.price < 50)]
JSONPath-dialekter
Det finns flera JSONPath-implementeringar med små inkompatibiliteter. Den här testaren följer Goessners ursprungliga specifikation och RFC 9535-förfiningarna, som är kompatibla med:
- Jayway JsonPath (Java)
- jsonpath-plus (JavaScript)
- jsonpath-rw (Python)
- jq grundläggande sökvägsuttryck
Inkompatibla funktioner (som skriptuttryck med godtycklig JS) flaggas i felpanelen.
När JSONPath slår en fullständig tolkare
- Testassertioner: Postmans
pm.expect(jsonData).to.have.jsonPath(...)tar en sökväg. - Konfigurationsextrahering: dra ut ett värde ur ett enormt API-svar utan ett bibliotek.
- Lasttestningsskript: k6, JMeter och Gatling stöder alla JSONPath för kontroller.
- Kubernetes / AWS CLI: flaggorna
--queryoch--jsonpathlåter dig forma utdata från kommandoraden.
Vanliga misstag
- Att använda
.på en array.$.users.0.nameär fel; använd$.users[0].name. - Att glömma
..för djup. En sökväg som$.namematchar baranamepå toppnivå; använd$..nameför alla. - Att förväxla JSONPath med jq. jq är en övermängd med kontrollflöde och transformationer; JSONPath är rent för extrahering.
- Regexförankring.
=~ /foo/matchar delsträngar; använd/^foo$/för exakt.
Vanliga frågor
JSONPath är ett rent extraheringsspråk, välj, filtrera, slice. jq är ett fullständigt fråge-/transformeringsspråk med kontrollflöde, variabler och funktioner. För enkel extrahering är JSONPath mer portabelt; för transformationer, använd jq.
Goessners ursprungliga specifikation plus RFC 9535-förfiningarna, matchande Jayway JsonPath (Java) och jsonpath-plus (Node). Dialektspecifika tillägg (skriptuttryck med godtycklig kod) stöds inte.
Ja. $..book[?(@.title =~ /^Harry.*/)] matchar alla böcker vars titel börjar med “Harry”. Använd ^ och $ för helmatchningsbeteende.
Ja. Både JSON:en och JSONPath-utvärderaren bor i din webbläsare. Ditt dokument och dina frågor lämnar aldrig fliken.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
HTML-formaterare
Formatera HTML lokalt i webbläsaren med indrag på två eller fyra blanksteg. HTML laddas inte upp eller valideras.
E-postvalidator
Validera en e-postadress: RFC 5322-syntaxkontroll, live-slagning av MX-poster samt detaljer om lokal del, domän och längd. Ingen e-post skickas.
Slumpgenerator för bokstäver
Generera slumpade A-Z-bokstäver. Välj antal, versaler, gemener eller blandat läge och använd resultatet för spel, uppgifter eller klassrumsaktiviteter.
Verktyget finns på andra språk
- Công cụ kiểm thử JSONPath [VI]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- Testeur JSONPath [FR]
- JSON Path Tester [ID]
- JSONPath-Tester [DE]
- JSONPath 테스터 [KO]
- JSON Path Tester [NL]
- เครื่องมือทดสอบ JSON Path [TH]
- Tester JSONPath [PL]
- JSONPath テスター [JA]
- Testador de JSONPath [PT]
- Probador de JSONPath [ES]
- JSONPath Tester [EN]
- Tester JSONPath [IT]
- JSONPath Tester [RU]
- JSONPath Test Aracı [TR]
- JSON路径测试器 [ZH]