JSONPath Tester | RFC 9535 Queries and Exact Matches

FormattingRuns in Your Browser (No Uploads)

Query API responses and nested JSON with RFC 9535 JSONPath. Inspect normalized result paths and copy matching values without uploading your data.

What to do next

Continue with a related workflow or open the next tool that usually follows this task.

How to Use This Tool

Paste a real API response, webhook body, log payload, or JSON fixture into the JSON input area.

Enter an expression beginning with $, such as $.user.email, $.orders[*].id, or $.orders[?(@.total >= 20)].id.

Run the evaluation and correct any JSON error at the reported line and column before changing the path.

Review the match count and normalized result paths to confirm that arrays, filters, and nested fields selected the intended nodes.

Copy or download the value collection for a test fixture, debugging note, documentation example, or follow-up data task.

When to Use This Tool

Debug an API response

Check a production-like API response and verify both the extracted value and its normalized path before adding the expression to application code.

Inspect webhook events

Filter event arrays by status, type, amount, or another field and inspect only the identifiers needed by a webhook handler.

Prepare test fixture values

Extract stable IDs, timestamps, and nested fields from JSON fixtures for assertions, parameterized tests, and regression cases.

Review structured logs locally

Query structured log payloads for request IDs, error codes, user fields, or repeated metadata without uploading sensitive samples.

Common Mistakes

Starting from the wrong root

Every JSONPath expression starts at the root with $. A path copied from application code may omit the root marker or assume a wrapper object that is not present in the actual response.

Treating zero matches as a syntax error

A valid expression can return zero matches when a field is missing, an array is empty, a value is null, or a filter condition is false. Check the normalized result paths against a real response, not only a shortened documentation sample.

Ignoring duplicate JSON keys

Duplicate object keys are ambiguous even when the JSON can be parsed. This tool warns about duplicates and evaluates the last value for each repeated key, so resolve them before reusing the expression in another parser.

Examples

Extract one nested email

Query one nested field and confirm both the normalized bracket path and the exact scalar value returned by RFC 9535 evaluation.

Input
{
  "user": {
    "email": "dev@example.com"
  }
}
Output
$.user.email returns path $['user']['email'] and value "dev@example.com".

Filter an array before extracting IDs

Filter order objects by numeric total, then confirm that only the qualifying identifier and its normalized result path are returned.

Input
{
  "orders": [
    { "id": "ord_1001", "total": 49.99 },
    { "id": "ord_1002", "total": 9.5 }
  ]
}
Output
$.orders[?(@.total >= 20)].id returns only "ord_1001".

RFC 9535 Evaluation and Safety Limits

The evaluator implements RFC 9535 selectors for root and child segments, recursive descent, object properties, array indexes, wildcards, slices, multiple selectors, and filters. Negative indexes count from the end of an array, while a missing property produces zero matches instead of an error.

Filter expressions can inspect the current node with @ and compare strings, numbers, booleans, null values, or nested properties. Expressions are parsed as JSONPath syntax; arbitrary JavaScript and script selectors are not evaluated.

Input is validated as strict JSON before evaluation. Files remain browser-local, input is limited to 5 MB, and evaluation stops above 5,000 matches. Duplicate keys trigger a warning because the last occurrence is used for the query and other parsers may handle the ambiguity differently.

Frequently Asked Questions

Are my JSON payloads uploaded?

No. JSON parsing and JSONPath evaluation run in your browser. Pasted payloads, uploaded JSON files, expressions, and extracted values are not sent to a conversion server.

Which JSONPath syntax is supported?

The evaluator follows RFC 9535 and supports root, child and descendant segments, property and array selectors, wildcards, negative indexes, slices, multiple selectors, and filter expressions. It does not execute arbitrary JavaScript selectors.

Can I test JSONPath filters and slices?

Yes. For example, $.orders[?(@.status == "paid")].id selects IDs from paid orders. Filters can compare values and combine logical conditions using RFC 9535 syntax.

How is this different from JSON Formatter?

JSON Formatter makes an entire document readable and reports JSON syntax problems. JSONPath Tester queries a valid document, shows the exact normalized paths that matched, and produces a copy-ready collection of only those values.

How This Tool Was Verified

Maintained and tested by Reviewed

Method: For the JSONPath Tester - Query and Extract JSON Values review, we preserved the source shown in “Extract a user email and order IDs from an API response” and completed “Paste the JSON response” and “Move the extracted values into the next tool”. The produced output was compared literally where possible, with “Skipping JSON validation” and “Using a broad recursive selector too early” checked against the linked failure evidence.

Expected result: The selected paths returned dev@example.com and both order IDs, and the normalized concrete paths identified the two array elements without exposing unrelated totals. Using $.orders[*].id instead of $..id also avoided matching user.id, while copied results still required redaction before sharing. Wildcard results retained source-array order, while malformed JSON and a missing member remained distinguishable from a legitimate empty string.

Open the tested workflow

Related workflow guides

Use these focused guides when you need a practical workflow before opening the tool.

Workflow guide

Fix broken URL query parameters

Use this workflow when a query string is present but the receiving app reads the wrong value, loses a parameter, or treats encoded text as literal data. The goal is to identify the broken layer before rebuilding the link, not to repeatedly encode the entire URL until it appears to work.

Workflow guide

How to extract values from a JSON response with JSONPath

Use this workflow when a response is valid JSON but too large to inspect manually, and you need a focused list of values for debugging, QA, or documentation. Keep the expression beside the extracted result so another person can repeat the selection against a newer response instead of relying on a one-time copy.

Workflow guide

Debug API JSON faster with JSONPath expressions

Use this workflow when a bug report, test failure, or production log includes a large JSON payload and you need to isolate request IDs, statuses, pagination links, or nested error fields.

Workflow guide

Convert a JSON array to CSV for spreadsheets

Use this workflow when an API response, fixture, or exported JSON array needs to become a spreadsheet-friendly CSV table for review, sorting, filtering, or sharing.

Workflow guide

Generate TypeScript types from an API JSON response

Use this workflow to turn a representative API response into a useful TypeScript starting point without pretending that one payload is the complete contract. It combines strict JSON cleanup, several array samples, explicit inference review, compilation in the target project, and runtime validation at the network boundary.

Related Tools

Continue with another maintained workflow

Browse All Tools