JSONPath Tester and JSON Query ToolJSONPath Plus · browser-local
en

AppHelp

Test JSONPath queries and copy match paths

Paste JSON, try wildcard or safe filter queries, inspect every matching value and path, then copy an access expression for your language. Input and queries stay in this browser.

Uses JSONPath Plus 10.4 semantics with safe expression evaluation in your browser.

Query results

Running…
No matches found.

Common tasks

  • jsonpath tester json query tool
  • jsonpath plus safe filter
  • copy jsonpath match path
  • jsonpath wildcard recursive descent
  • json pointer from jsonpath
  • private local json query

Quick answer

This focused JSONPath tester evaluates JSONPath Plus 10.4 queries against pasted JSON, shows each matched value with its canonical JSONPath and JSON Pointer, and converts selected paths for nine development environments. It uses the library's safe expression evaluator, does not mutate the source JSON, and does not upload, persist, log, or place user data in the URL.

How to use

  1. 1. Paste valid JSONAdd an API response, test fixture, configuration object, or load the built-in users example. Parse errors include line and column when the browser reports a character position.
  2. 2. Enter or choose a JSONPath queryUse a preset for array projection, one item, a safe role condition, or recursive id lookup, then adapt it to your document.
  3. 3. Inspect every matchReview the total, canonical JSONPath, escaped JSON Pointer, value type, and preview. At most 200 rows are rendered and truncation is reported.
  4. 4. Copy values or pathsCopy match values as a JSON array, copy one value or canonical path, or select a match for JavaScript, Python, PHP, Java, Go, C#, jq, and JSON Pointer variants.

Examples

Project every user name

Input
$.users[*].name
Output
["Ada", "Linus"]

The wildcard selects name from every array item.

Filter administrators safely

Input
$.users[?(@.role == "admin")]
Output
A JSON array containing matching user objects

The condition runs with JSONPath Plus safe evaluation, not native eval.

Find ids recursively

Input
$..id
Output
Every id value below the root

Recursive descent can match ids at different nesting depths.

Common use cases

  • Debug an API extraction expression before adding it to application code
  • Verify wildcard and filter behavior against a realistic fixture
  • Copy canonical paths for individual matches into tests or documentation
  • Translate a match into JavaScript, Python, Java, Go, C#, jq, or JSON Pointer access
  • Inspect private JSON locally without creating a share URL

Edge cases

  • JSONPath has multiple dialects; this page follows JSONPath Plus 10.4 rather than promising identical behavior in every implementation
  • Safe filter expressions are supported, but native eval and source-document mutation are not enabled
  • Duplicate JSON object keys are resolved during JSON.parse and only the last value survives
  • Numbers outside JavaScript's safe integer range can lose precision and should be represented as strings
  • JSON Pointer escapes ~ as ~0 and / as ~1; the empty pointer represents the root
  • At most 200 match rows are rendered, and very large documents remain limited by browser memory

Features

  • Run JSONPath Plus wildcard, recursive descent, and safe filter queries
  • See match counts, canonical JSONPath, JSON Pointer, type, and value previews
  • Copy all matching values as a JSON array while rendering at most 200 rows
  • Copy individual values and canonical match paths
  • Convert a selected match path to nine developer formats
  • Keep JSON and queries in browser memory with no upload or persistence

Frequently asked questions

Which JSONPath implementation does this tester use?
It uses JSONPath Plus 10.4. Wildcards, recursive descent, and safe filter expressions are supported, while edge cases may differ from other JSONPath dialects.
Are JSONPath filter expressions safe?
Queries explicitly use JSONPath Plus safe evaluation. Native eval is not enabled and queries do not modify the original JSON value.
Does my JSON or query leave the browser?
No. JSON, queries, match values, and paths remain in browser memory and are not uploaded, persisted, logged, or written into the URL.
What is copied when I choose Copy values as JSON?
All matching values are serialized as a JSON array, including when the query matches one value. The UI renders only the first 200 rows and reports truncation; very large copies remain limited by browser memory.
Why can another JSONPath tool return different results?
JSONPath is implemented by several dialects with differences in filters, escaping, ordering, and extensions. Compare the target runtime's semantics before shipping a query.