JSONPath Tester

Test JSONPath-expressies op JSON en zie direct de overeenkomende waarden en paden terwijl je typt.

JSON-invoer
Overeenkomstige waarden
Voer JSON en een JSONPath-expressie in om te testen.

Je JSON en JSONPath worden getest in je browser. Er wordt niets geüpload naar BroBroGo.

Veelgestelde vragen

Welke JSONPath-syntaxis kan ik gebruiken?

Gebruik veelvoorkomende JSONPath-patronen zoals $.store.book[*].title, recursieve afdaling met $..price, filters zoals [?@.price < 10] en array-slices.

Waarom toont elk resultaat een pad?

Het pad laat zien waar de waarde vandaan komt in de bron-JSON, zodat je een overeenkomst kunt kopiëren zonder de locatie te verliezen.

Waarom kan een query een time-out krijgen?

Zeer brede recursieve query's of enorme JSON-bestanden kunnen te lang duren. De tester stopt ze na een korte limiet, zodat je de expressie kunt verfijnen of een kleiner voorbeeld kunt gebruiken.

Werking van de JSONPath Tester

De JSONPath Tester is ontworpen om JSONPath-expressies direct te evalueren tegenover JSON-data. Na het invoeren van de JSON-data en een specifieke JSONPath-expressie toont de tool direct de waarden die overeenkomen met de expressie, inclusief de exacte paden binnen de originele JSON-structuur. Dit geeft direct inzicht in welke gegevens een specifieke expressie selecteert uit de databron.

De verwerking van de gegevens vindt volledig plaats in de browser van de gebruiker; er worden geen gegevens geüpload naar BroBroGo.

Invoerlimieten en parameters

De tool hanteert strikte limieten voor de invoer om de prestaties in de browser te waarborgen:

  • JSON-invoer: De tekstarea voor de JSON-data accepteert een maximale grootte van 500.000 tekens. Indien deze limiet wordt overschreden, toont de interface de foutmelding: "Deze JSON is te groot om hier te testen. Probeer een kleiner voorbeeld."
  • JSONPath-expressie: Het tekstveld voor de expressie heeft een limiet van 4.000 tekens. Bij overschrijding verschijnt de melding: "Deze JSONPath-expressie is te lang om hier te testen."

Evaluatie en foutafhandeling

Tijdens het typen of na het invoeren van de gegevens valideert en evalueert de tool de invoer. Hierbij kunnen de volgende scenario's en foutmeldingen optreden:

  • Syntactische validatie: Als de ingevoerde JSON-structuur corrupt of incompleet is, toont de tool de melding: "Deze JSON is niet geldig." Als de JSONPath-expressie onjuiste syntaxis bevat, verschijnt de melding: "Deze JSONPath-expressie is niet geldig."
  • Evaluatiefouten: Wanneer de expressie syntactisch correct lijkt maar niet kan worden uitgevoerd op de structuur, toont de interface: "Kon deze JSONPath niet evalueren."
  • Tijdlimiet (Timeout): Om vastlopen van de browser te voorkomen, stopt de evaluatie na een korte tijdlimiet. Als een query deze limiet overschrijdt, verschijnt de melding: "Deze JSONPath deed er te lang over om uit te voeren. Verfijn de expressie of gebruik een kleiner voorbeeld."
  • Geen resultaten: Als de expressie correct is uitgevoerd maar geen overeenkomstige elementen heeft gevonden, toont de tool: "Geen overeenkomsten."
  • Wissen: Wanneer de invoervelden worden leeggemaakt, wordt de status "Gewist." weergegeven.

Resultaten en weergave

De resultaten worden getoond onder het label "Overeenkomstige waarden". De weergave is onderworpen aan de volgende regels:

  • Maximale weergave: De tool toont maximaal 200 resultaten.
  • Aantal matches: De interface toont het totale aantal gevonden overeenkomsten via de indeling "Overeenkomsten: {count}". Indien er meer dan 200 resultaten zijn, wordt dit weergegeven als "Overeenkomsten: 200+" in combinatie met de notificatie "Eerste {max} worden weergegeven."
  • Detailweergave: Elk individueel resultaat bevat een gedetailleerde weergave onder de kop "Detail", waarin de gevonden waarde en het bijbehorende herkomstpad binnen de JSON-structuur worden getoond.

JSONPath-patronen en dataselectie

JSONPath biedt verschillende mechanismen om door JSON-datastructuren te navigeren en specifieke elementen te selecteren:

Recursieve afdaling (Recursive Descent)

Met de operator .. kan diep in de JSON-structuur worden gezocht zonder elk tussenliggend niveau expliciet te benoemen. Een expressie zoals $..price zoekt naar elke sleutel met de naam "price", ongeacht hoe diep deze zich in de geneste objecten bevindt.

Filters

Filters maken het mogelijk om elementen te selecteren op basis van specifieke criteria. Dit gebeurt met de syntaxis [?(@.pad)]. Een filter zoals [?@.price < 10] selecteert bijvoorbeeld alleen objecten waarvan de eigenschap "price" een numerieke waarde heeft die kleiner is dan 10.

Array-slices

Met array-slices kunnen specifieke subsets van arrays worden geselecteerd op basis van hun index. Dit is nuttig bij het werken met geordende lijsten waarin alleen bepaalde posities relevant zijn.

Veelgestelde vragen

Welke JSONPath-syntaxis kan ik gebruiken?
Gebruik veelvoorkomende JSONPath-patronen zoals $.store.book[*].title, recursieve afdaling met $..price, filters zoals [?@.price < 10] en array-slices.

Waarom toont elk resultaat een pad?
Het pad laat zien waar de waarde vandaan komt in de bron-JSON, zodat je een overeenkomst kunt kopiëren zonder de locatie te verliezen.

Waarom kan een query een time-out krijgen?
Zeer brede recursieve query's of enorme JSON-bestanden kunnen te lang duren. De tester stopt ze na een korte limiet, zodat je de expressie kunt verfijnen of een kleiner voorbeeld kunt gebruiken.