JSON Path Finder

Click any value in your JSON to get its path — as JSONPath, JavaScript, jq or Python

Got a path and want to test it? Run it in the JSONPath Tester.

Path to the root

JSONPath$
JavaScriptdata
jq.
Pythondata

Was the JSON Path Finder helpful?

Get new tools in your inbox

About once a month, when new tools ship. No spam, one-click unsubscribe.

We store only your email to send these updates. Privacy

About this tool

The JSON Path Finder shows your JSON as a tree: click any value and get the path to it, ready to paste as JSONPath ($.order.items[0].sku), JavaScript (data.order.items[0].sku), jq (.order.items[0].sku) or Python (data["order"]["items"][0]["sku"]). Keys that aren't valid identifiers are quoted the way each language needs. Tick "All array items" to turn the indexes into wildcards — [*] in JSONPath, [] in jq, a map in JavaScript and a list comprehension in Python — to get the same field from every item. Search finds every key or value containing a piece of text and jumps to it in the tree. It runs entirely in your browser, so it's safe to paste API responses with real data.

When to use it

  • →Finding the path to a field buried deep in a large API response
  • →Writing jq filters for the command line
  • →Getting the accessor for a value in JavaScript or Python code
  • →Building JSONPath expressions for API tests, Postman or Kubernetes (kubectl -o jsonpath)
  • →Locating where a value appears in an unfamiliar JSON document

Tips

  • ◆Use search to find a value you can see in the UI but not in the JSON — it lists every match with its path.
  • ◆"All array items" turns [0] into [*], so the path selects that field from every element.
  • ◆Test a path against the full document in the JSONPath Tester.

Frequently asked questions

What's the difference between JSONPath and jq paths?

JSONPath starts with $ and is used in many libraries and tools; jq starts with a dot and is the command-line JSON processor's syntax. For simple paths they look alike: $.a.b[0] versus .a.b[0].

How are keys with spaces or dashes handled?

They're written in bracket notation: $['post-code'] in JSONPath, ["post-code"] in JavaScript and jq, and ["post-code"] in Python, so the path always works.

Is my JSON uploaded anywhere?

No. Parsing, the tree and the paths are all computed in your browser tab.

Related tools

ToolNinja