All free tools Runs in your browser

JSON Path Finder

Explore JSON as a tree, click any value to copy its path, and test JSONPath expressions against your data.

Find the path to any value

JSONPath
Paste an API response or config file, then press Show tree.
Read locally with FileReader and never uploaded. Maximum 15 MB.

Your JSON never leaves this device. The tree and the JSONPath evaluator run in your browser. Nothing is uploaded to VPSLake or stored, so API responses with keys or personal data are safe to explore.

Find a path in four steps

Useful for writing jq filters, monitoring checks, API tests and code that reads nested JSON.

  1. 1

    Load the JSON

    Paste it or open a file, then press Show tree. The first three levels open automatically.

  2. 2

    Click the value you need

    Click any key or value in the tree. Deeper branches open as you click their arrows.

  3. 3

    Copy the path

    Copy the JSONPath in dot or bracket form, or the ready-made JavaScript, Python or PHP expression.

  4. 4

    Test a query

    Type a JSONPath such as $..ip and press Evaluate to list every match. Click a match to jump to it in the tree.

Supported JSONPath syntax

The evaluator covers the parts of JSONPath that people use every day:

  • $ root, .key, ['key'] and ["key"]
  • [0], negative [-1] and lists like [0,2]
  • Wildcards [*] and .*
  • Recursive search ..key and slices [1:3]

Filter expressions such as [?(@.port == 22)] are not supported.

Using the path on a server

The dot path maps directly to jq: $.servers[0].ip becomes jq '.servers[0].ip' data.json. Keys with dashes or spaces need the bracket form, for example jq '.billing["next-invoice"]'.

In code, read the file first: const data = JSON.parse(text) in JavaScript, data = json.load(f) in Python, or $data = json_decode($json, true) in PHP, then paste the copied expression.

JSON Path Finder FAQ

No. Building the tree and evaluating JSONPath both happen in your browser. Nothing is uploaded to VPSLake or kept after you close the page.
A short way to point at a place inside JSON, similar to XPath for XML. $ is the whole document, .name picks a key, [0] picks the first array item and ..name searches every level. Kubernetes, AWS Step Functions, API testing tools and many monitoring systems use it.
Dot notation only works for simple names. When a key has a dash, a space, a dot or starts with a digit, the tool switches that part to brackets, such as $.billing['next-invoice'], so the path still works when you paste it.
Paths are case-sensitive, and array indexes start at 0. Check that the key exists at that level; if you are not sure how deep it is, use the recursive form, for example $..hostname.
Yes. Collapsed branches are only built when you open them, and the tree stops drawing after 6,000 nodes to keep the page responsive. A JSONPath query still searches the whole document and can jump to any match.
JavaScript (data.servers[0].ip), Python (data["servers"][0]["ip"]) and PHP ($data['servers'][0]['ip']), plus both JSONPath notations.