Tools · JSONPath

# JSONPath tester

Paste JSON, type a path, and see exactly what it selects — the count, the matching nodes as a tree, and Copy or Convert over just those. The document never leaves the tab.

no signup · runs entirely in your browser · ⌘V works anywhere on this page

## What you get

- Selects 2 of 44 nodes for $.items[*].sku over the API-response sample — the count is the engine’s, printed with the path
- Draws the matches as the tree they sit in — each match lit, the branches that hold it above it, nothing else — so a wildcard’s reach is visible at a glance
- Counts live as you type; a path the engine refuses turns the field’s edge red and says what to fix — “a JSONPath starts at the root — try $.items[*].sku”
- Copy hands over the matched values as one JSON array; Convert opens that array in the app with the Convert tool up — YAML, CSV, TypeScript and the rest
- Reads the $.a.b dialect jsonpath-plus reads: $.items[*].sku, $..qty, $.items[?(@.qty > 1)], $.items[0:2], $['my key']

## What it will not do

- Change the document. A path selects; nothing is edited, removed or reordered.
- Run JMESPath, jq or XPath — a JSONPath, in the $.a.b dialect.
- Guess a path from a sentence. You type the path; the tree shows its reach.
- Send your text anywhere. The page is static and the engine runs in this tab — open the network panel and watch it stay empty.

## What a path selects

$.items[*].sku[ "BRD-OAK-002", "OIL-MNRL-008" ]

2 of 44 nodes over the order sample.

$.items[?(@.qty > 1)].sku[ "OIL-MNRL-008" ]

items[*].skua JSONPath starts at the root — try $.items[*].sku

The field’s edge turns red and the sentence sits under it; nothing is selected until the path reads.

## The sample

What the first sample opens — a real file, not an illustration written for this page.

clean-order-example.json · $.items[*].sku — 2 of 44 nodes match

```
[
  "BRD-OAK-002",
  "OIL-MNRL-008"
]
```

## in VS Code

Copy JSON path in VS Code writes the path of the value under the cursor — $.items[0].sku — the way this page reads one; the query itself is the site’s.

## Questions

### Which JSONPath dialect is it?

The one jsonpath-plus implements — Goessner’s $.a.b with wildcards, deep scans ($..key), slices and [?()] filters. The same engine answers Find’s path mode in the app.

### Why does the tree show branches I did not ask for?

A match is shown where it sits: the branches above it are the path to it, dimmed, so $.items[*].sku reads as items → [0] → sku rather than two bare strings.

### What does Convert do with the matches?

It collects the matched values into one JSON array, opens it in the app as its own tab, and puts the Convert tool up — so two SKUs become a CSV column or a TypeScript type in one more click.

### Can I query a CSV or a log?

Not here — a JSONPath walks a document. Read the rows in the app and use Filter (field=value, /regex/) over them instead.

## Behind this page

## Try it on the file that broke your afternoon.

free · no signup

---

Canonical: https://unstringify.com/tools/jsonpath
