onlinetools.dev

JSONPath-tester

Bevraag JSON met JSONPath-expressies en zie elke match met zijn pad

Draait lokaal
loading…
Over deze tool

Test JSONPath-expressies tegen je eigen JSON en zie elke match met zowel de waarde als het concrete pad. Ondersteunt de syntaxis die het dagelijks gebruik dekt: punt- en haakjesnotatie, array-indices (ook negatieve), wildcards, unions (['a','b']) en recursieve afdaling ($..price).

De paduitvoer per match is het stilletjes nuttige deel: bevraag $..id op een diep document en elk resultaat vertelt je precies waar het woont ($.data.items[3].id), klaar om in code te plakken. Het verandert “ergens in deze blob” in een exact adres.

Filterexpressies ([?(@.price < 10)]) zijn nog niet geïmplementeerd — de tool zegt dat expliciet in plaats van verkeerde resultaten te geven. Voor structurele extractie, waar JSONPath meestal voor dient, werkt alles.

Veelgestelde vragen

Wat is het verschil tussen $.a.b en $..b?
$.a.b volgt één exacte route: sleutel a in de root, dan sleutel b daarbinnen. $..b (recursieve afdaling) vindt elke b, waar dan ook in het document, op elke diepte. Recursieve afdaling is krachtig maar kan verrassen — het matcht ook b-sleutels genest in dingen waar je niet aan dacht.
Hoe benader ik sleutels met spaties of streepjes?
Met haakjesnotatie en aanhalingstekens: $['my key'] of $.data['content-type']. Puntnotatie werkt alleen voor sleutels die geldige identifier-achtige namen zijn.
Werken negatieve array-indices?
Ja — [-1] is het laatste element, [-2] het voorlaatste, conform de conventie die door Python populair werd en door RFC 9535 is overgenomen. [0] blijft het eerste element.
Is JSONPath gestandaardiseerd?
Sinds 2024 wel — RFC 9535 legt syntaxis en semantiek vast. Implementaties van vóór die tijd verschillen in randgevallen (vooral bij filters en unions), dus dezelfde expressie kan zich per bibliotheek anders gedragen; test tegen de implementatie waarmee je uitrolt.
Gerelateerde tools