Skip to main content
NyankoTools

JSON Path / JSON Pointer Tester

Enter some JSON data and a query (JSONPath or JSON Pointer) to see every matched value along with its absolute path. Handy for checking a query before pulling a value out of an API response, or for validating an expression before passing it to jq or a JSONPath library. To format or validate JSON itself, also try the JSON Formatter tool.

🔒 Runs in your browser · Your data is never sent to a server

Query format

e.g. $.store.book[*].title

#PathValue

Notes

  • JSONPath follows the jsonpath-plus library implementation. Extended syntax such as filter expressions ([?(@.price>10)]) and recursive descent (..) is supported, though exact behavior can vary between implementations.
  • A JSON Pointer always points to exactly one location, so it always produces a single result (or an error). Use JSONPath if you need to collect multiple values at once.
  • A JSON Pointer with a leading # (the URI fragment form used in OpenAPI/JSON Schema, e.g. $ref: "#/components/schemas/Foo") is also accepted — the # is simply stripped.
  • Everything runs entirely in your browser — the JSON and query you enter are never sent to a server.

Glossary

JSONPath

A query language for pointing to specific values inside JSON data, similar to XPath for XML. `$.store.book[0].title` walks down the object/array hierarchy: `$` is the root, `.` accesses a property, `[*]` is a wildcard (every element), and `..` is recursive descent (matches at any depth).

JSON Pointer

A simple notation defined in RFC 6901 for pointing to a single location in JSON. `/store/book/0/title` walks down keys and array indices separated by "/". Unlike JSONPath it has no wildcards and always points to exactly one location. A literal "/" in a key is escaped as "~1" and "~" as "~0".

Filter expression

A JSONPath syntax for narrowing down elements with a condition, such as `[?(@.price > 10)]`. `@` refers to the element currently being examined.

FAQ

When should I use JSONPath versus JSON Pointer?

JSONPath supports filters and wildcards and can return several values at once. JSON Pointer addresses exactly one location, so the result is always a single value or an error. Use JSONPath when you need multiple values.

Are filter expressions and recursive descent (..) supported?

Yes. Filters such as [?(@.price>10)] and recursive descent with .. work. The implementation follows the jsonpath-plus library, so details may differ from other libraries or jq.

Can I use pointers starting with "#/" such as OpenAPI $ref values?

Yes. A leading # is skipped, so values like #/components/schemas/Foo work as JSON Pointers.

Share this page

↑↓ Select Enter Open Esc Close