JSON Path Tester
Plak een JSON-document en typ een JSONPath-expressie zoals $..book[?(@.price<10)]. De tester beoordeelt deze expressie op het document en toont alle overeenkomstige waarden samen met de exacte paden van elk resultaat. Handig om de query die u gaat plakken in een script of een API-specificatie te valideren (Postman, k6 en JMeter ondersteunen allemaal JSONPath).
Hoe je een JSONPath-expressie testt
-
1
Plak het JSON-document
Elke geldige JSON-structuur, object, array of diep geneste structuur.
-
2
Typ de uitdrukking in
Begin met `$` voor de wortel. Gebruik `.` voor het kind, `..` voor recursieve afdaling en `[*]` voor een wildcard.
-
3
Bekijk de overeenkomsten live
Elke overeenkomst wordt weergegeven met zijn waarde en de volledige JSONPath, gemarkeerd in het originele document.
-
4
Kopieer de resultaten
Kopieer de overeenkomsten als een JSON-array of kopieer elk afzonderlijk pad voor gebruik in de volgende code.
Referentie voor de Syntax van JSONPath
| Uitdrukking | Betekenis |
|---|---|
$ |
Hoofdelement |
$.store |
Kind van $, genaamd store |
$["store"] |
Hetzelfde, in haakjesvorm |
$..author |
Alle eigenschappen van author op elke diepte |
$.store.book[*] |
Alle boeken in de winkel |
$.store.book[0] |
Eerste boek |
$.store.book[-1:] |
Laatste boek |
$.store.book[0:2] |
De eerste twee boeken (fragment) |
$.store.book[?(@.isbn)] |
Boeken met de eigenschap isbn |
$.store.book[?(@.price < 10)] |
Boeken voor minder dan 10 |
$.store.book[?(@.category == "fiction")] |
fictieboeken |
$..* |
Elke waarde, overal |
Filteruitdrukkingen
Filteruitdrukkingen gebruiken @ om de huidige node aan te duiden. De tester ondersteunt de gangbare operatoren ==, !=, <, >, <=, >=, &&, || en regex =~.
$.items[?(@.qty >= 10 && @.price < 50)]
Dialecten van JSONPath
Er bestaan verschillende implementaties van JSONPath met geringe onverenigbaarheden. Deze tester volgt de originele specificatie van Goessner en de verbeteringen uit RFC 9535, die compatibel zijn met:
- JaywayJsonPath (Java)
- jsonpath-plus (JavaScript)
- jsonpath-rw (Python)
- jq basispaduitdrukkingen
Onverenigbare functies (zoals scriptuitdrukkingen met willekeurige JS-code) worden in het foutpaneel gemarkeerd.
Wanneer JSONPath een volledige parser overtreft
- Testasserties: De Postman
pm.expect(jsonData).to.have.jsonPath(...)ontvangt een pad. - Config-extractie: haal één waarde uit een grote API-respons zonder gebruik te maken van een bibliotheek.
- Scripten voor belastingtesten: k6, JMeter en Gatling ondersteunen allemaal JSONPath voor controles.
- Kubernetes/AWS CLI: De
--query- en--jsonpath-vlaggen geven u de mogelijkheid om de uitvoer van de commandolijn te configureren.
Veelvoorkomende fouten
- Gebruik van
.op een array.$.users.0.nameis incorrect; gebruik$.users[0].name. - Vergeten van
..voor de diepte. Een pad als$.namepast alleen bij het hoogste niveauname; gebruik$..namevoor alle gevallen. - JSONPath verwarren met jq. jq is een superset die ook controlestromen en transformaties ondersteunt, terwijl JSONPath uitsluitend bedoeld is voor gegevensextractie.
- Regex-verankering.
=~ /foo/past bij deelstrings; gebruik/^foo$/voor een exacte overeenkomst.
Veelgestelde vragen
JSONPath is een pure extractietaal, selecteren, filteren en snijden. jq is een volledige query-/transformatietaal met controleflow, variabelen en functies. Voor eenvoudige extractie is JSONPath beter porteerbaar; voor transformaties gebruik je jq.
De originele Goessner-specificatie in combinatie met de verbeteringen uit RFC 9535, die overeenkomt met JaywayJsonPath (Java) en jsonpath-plus (Node). Dialectspecifieke extensies (scriptuitdrukkingen met willekeurige code) worden niet ondersteund.
Ja. $..book[?(@.title =~ /^Harry.*/)] past bij alle boeken waarvan de titel begint met “Harry”. Gebruik ^ en $ voor een volledige overeenstemming.
Ja. Zowel de JSON als de JSONPath-evaluator draaien in uw browser. Uw document en uw query’s verlaten de tab nooit.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
E-mailvalidator
Valideer een e-mailadres: RFC 5322-syntaxcontrole, live MX-record-zoekopdracht, plus details over lokaal deel, domein en lengte. Er wordt geen e-mail verstuurd.
EditorConfig-generator
Genereer een .editorconfig-bestand met uw regels voor inspringstijl en -grootte, regeleinde, tekenset en witruimte voor consistente opmaak in alle IDE's en editors.
HTML-opmaker
Formatteer HTML lokaal in de browser met twee of vier spaties inspringing. HTML wordt niet geüpload of gevalideerd.
Tool beschikbaar in andere talen
- JSON Path Tester [ID]
- Công cụ kiểm thử JSONPath [VI]
- Probador de JSONPath [ES]
- Testeur JSONPath [FR]
- JSONPath 테스터 [KO]
- JSONPath-testare [SV]
- JSONPath テスター [JA]
- เครื่องมือทดสอบ JSON Path [TH]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- JSONPath-Tester [DE]
- Tester JSONPath [PL]
- Testador de JSONPath [PT]
- Tester JSONPath [IT]
- JSONPath Tester [RU]
- JSONPath Test Aracı [TR]
- JSON路径测试器 [ZH]
- JSONPath Tester [EN]