{ }jsonkit
Tools/Query/JSONPath / JQ Tester
Search tools…⌘K
Format
{ }JSON Formatter
≡→JSON Minifier
\"JSON Escape / Unescape
Validate
JSON Validator
±JSON Diff / Compare
§JSON Schema Generator
JWT Decoder
Convert
→csvJSON to CSV
csv→CSV to JSON
⇄ymlJSON ⇄ YAML
⇄xmlJSON ⇄ XML
→tsJSON to TypeScript
Query
$.JSONPath / JQ Tester
Generate
Mock JSON Data Generator
$.

JSONPath / JQ Tester

Query playground with live results as you type.
processes as you type · client-side
Sample
Upload
Engine
JSONPathjq
⧉ Copy output ⌘C
Download
Share
Clear
$live results as you type · ⌘↵ to re-run
Input219 B · paste or drop a file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Results — 2 matches
codetree
1 2 3 4
[ "admin", "editor" ]
✓ valid (RFC 8259)219 B → 25 B0.0 msLn 1, Col 1UTF-8

About JSONPath / JQ Tester

The JSONPath tester is a live query playground: type a JSONPath expression and see the matching values update as you type against your document. It is the fastest way to work out the exact path that selects the data you need before you hard-code it.

Your JSON and your queries run in the browser with no upload, so you can experiment against a real production response without it leaving your machine. It is free, instant and needs no account.

It is built for developers extracting fields from API responses, writing selectors for tests or automations, and anyone learning JSONPath by trial and error with immediate feedback.

How it works

JSONPath basics

$ is the root, dot notation walks into keys ($.user.name), brackets index arrays ($.items[0]), and the wildcard [*] selects every element. Combine them to reach into nested structures and pull out exactly the values you want.

Filters and recursion

Recursive descent (..) finds a key at any depth, and filter expressions like [?(@.active==true)] select array elements matching a condition. These let you query by value, not just by fixed position, which is essential for real-world data.

Live results as you type

Every keystroke re-runs the query against your document and shows the current matches. A query that selects nothing returns an empty result rather than an error, so you can refine the path incrementally.

Reading the output

Matches are returned as a JSON array of the selected values, preserving their original types and order. If your expression targets a single value you still get it back in a predictable, copy-ready form.

Frequently asked questions

What's the difference between JSONPath and jq?

JSONPath is a compact path syntax for selecting values out of a document. jq is a fuller query and transformation language. This tester focuses on JSONPath-style selection for quickly extracting data.

How do I select every item in an array?

Use the wildcard: $.items[*] returns every element. Add a key after it, like $.items[*].id, to pull one field from each element.

My query returns nothing — is that an error?

No. An expression that matches no data returns an empty result. Check for a typo in a key name, or that the path matches the actual nesting of your document.

How do I filter array elements by a condition?

Use a filter expression such as $.users[?(@.active==true)] to keep only elements whose field matches. @ refers to the current element being tested.

Is my JSON uploaded to run the query?

No. Both the document and the query are processed locally in your browser, so it's safe for production data.