Cryonel

JSONPath Tester

Query a JSON document with a JSONPath expression and see every matching value and its exact path.

How to use it

  1. Paste or locally open a valid JSON document, or load the example.
  2. Enter a path beginning with $, such as $.store.books[*].title.
  3. Select Evaluate or press Ctrl/ + Enter.
  4. Review each matched value together with its exact path in the source document.

Supported JSONPath syntax

Segments can be chained. For example, $.store.books[*].author.name selects every author name inside the books array, while $..price finds every property named price anywhere in the document.

JSONPath query example

{
  "store": {
    "books": [
      {"title": "Practical APIs", "price": 18},
      {"title": "Reliable JSON", "price": 24}
    ]
  }
}

Running $.store.books[*].title returns two matches: $.store.books[0].title and $.store.books[1].title. Running $..price returns both numeric prices. A valid query with no matching path returns “no matches”; that is different from a syntax error.

Unsupported expressions and common errors

This focused tester does not execute filter predicates such as [?(@.price < 20)], array slices, unions, or script expressions. Unsupported input is rejected rather than interpreted approximately. That makes results predictable, but it also means an expression copied from a more complete JSONPath implementation may need to be simplified.

When to test JSONPath

JSONPath is useful for preparing test assertions, extracting fields from API responses, configuring observability pipelines, mapping webhook payloads, and locating values in automation workflows. A tree view can help discover the structure first; then this tester confirms that the expression selects only the intended values. Input, expressions, and results remain in the current browser tab and are not uploaded to Cryonel.

Test expressions against representative payloads, including missing optional fields, empty arrays, and multiple matches. A path that works for one sample may return nothing when an upstream service omits a branch. Keeping these edge cases in fixtures makes later integration failures easier to diagnose.

Frequently Asked Questions

Are filter expressions like [?(@.price < 10)] supported?

Not currently. This tester covers root, child, array index, wildcard, and recursive-descent navigation. Filter predicates, slices, unions, and script expressions are rejected instead of being evaluated partially.

What does $..price do?

It searches the entire document at every depth for any property named price and returns all matches, regardless of nesting level.

Does the JSONPath query upload my data?

No. Cryonel parses the JSON and evaluates the expression locally in the browser. The input and matched values are not sent to Cryonel.

Related Tools