DataShift

JSON Path Finder

Paste JSON, click any value in the tree, get the path expression. Supports JSONPath ($.user.roles[0]), dot notation, and bracket notation. Copy in one click.

When you need this

Writing jq filters

jq uses JSONPath-style expressions. Click the value you want to extract, copy the path, and paste it straight into your jq command. No trial and error.

AWS Step Functions & EventBridge

Step Functions input/output paths and EventBridge rule patterns use JSONPath syntax. Find the exact path to the field you need without manually counting nesting levels.

Postman and API testing

Postman test scripts and variable extractors use dot-notation paths. Paste a response body, click the field you want, and copy the expression.

JavaScript / TypeScript code

When writing code that processes API responses, click through the response structure to get the exact property access path: response.data.users[0].address.city.

Kubernetes admission controllers

OPA/Rego policies and ValidatingWebhookConfiguration patches use JSONPath to address fields in manifests. Find the correct path without reading through nested spec docs.

Debugging nested API responses

When an API returns 10 levels of nesting and you need one field, clicking through the tree is faster than mentally parsing the structure.

Example

GitHub API response — finding paths to specific fields

Input JSON
{
  "repo": "tensorflow/tensorflow",
  "stars": 178000,
  "contributors": [
    { "login": "alice", "contributions": 2891 },
    { "login": "bob",   "contributions": 1204 }
  ]
}
Paths
Click "178000"   →  $.stars
Click "alice"    →  $.contributors[0].login
Click 2891       →  $.contributors[0].contributions
Click "bob"      →  $.contributors[1].login

Frequently asked questions

What is JSONPath?

JSONPath is a query language for JSON, similar to XPath for XML. An expression like $.user.roles[0] addresses a specific value. It's used in jq, AWS Step Functions, Kubernetes admission controllers, Postman, and many other tools that need to extract or filter values from JSON structures.

What's the difference between JSONPath, dot notation, and bracket notation?

JSONPath ($.user.name) is the formal standard used by query engines and adds the $ root marker. Dot notation (user.name) is JavaScript property access syntax — simpler but requires valid identifiers as keys. Bracket notation (user["name"] or user[0]) handles keys with special characters and array indices. All three address the same value.

My JSON key contains spaces or special characters. Which notation should I use?

Use bracket notation or JSONPath with bracket syntax: user["first name"] or $['first name']. Dot notation only works for keys that are valid JavaScript identifiers (letters, digits, underscore, dollar sign — no spaces or hyphens).

Can I use the path expression directly in JavaScript?

Dot and bracket notation paths copy directly into JavaScript. JSONPath (starting with $) needs a JSONPath library like jsonpath-plus to evaluate. For plain JavaScript property access, use dot or bracket notation from the dropdown.

How do I handle deeply nested arrays?

Click the specific element you want. The path shows the full chain including all array indices: $.orders[2].line_items[0].sku. Each level of nesting is reflected in the expression.