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
Webpack-configuratiegenerator
Maak een webpack.config.js voor webpack 5 vanuit een kort formulier: stel entry, uitvoermap en mode in en zet TypeScript, Babel, een CSS-loader, HtmlWebpackPlugin en een dev-server aan.
JSON naar PHP-array
Zet JSON om naar een PHP-array-literal met korte syntaxis, associatieve/geïndexeerde arrays en geneste structuren, klaar om in een .php-bestand te plakken.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.
SVG-golfgenerator
Genereer een vloeiende SVG-golfscheiding voor headers en footers met instelbare amplitude, frequentie, kleur en positie boven of onder. Kopieer de SVG-code.
Luhn-algoritme-checker
Controleer de creditcardnummer, IMEI, SIN en andere door Luhn beschermden nummers. Geef een resultaat terug (goed of fout) en toon elke stap van het verdubbelen en het berekenen van de controlesom aan.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
Tool beschikbaar in andere talen
- أداة اختبار مسارات JSON (JSONPath) [AR]
- Probador de JSONPath [ES]
- JSONPath 테스터 [KO]
- Testeur JSONPath [FR]
- Công cụ kiểm thử JSONPath [VI]
- เครื่องมือทดสอบ JSON Path [TH]
- Tester JSONPath [PL]
- JSONPath-testare [SV]
- Testador de JSONPath [PT]
- JSON Path Tester [ID]
- JSONPath テスター [JA]
- JSONPath-Tester [DE]
- JSONPath Tester [EN]
- Tester JSONPath [IT]
- JSONPath Tester [RU]
- JSONPath Test Aracı [TR]
- JSON路径测试器 [ZH]