Developer Tools
JSON Path Finder — Tree View & Query Tool
Explore JSON as a tree, copy JSONPath, JavaScript, Python, jq and lodash paths, and run basic JSONPath queries in your browser.
Developer Tools
Explore JSON as a tree, copy JSONPath, JavaScript, Python, jq and lodash paths, and run basic JSONPath queries in your browser.
JSONPath selects nodes in a JSON document, starting at the root $ and following member names or array indexes. RFC 9535 defines the standard query language.
This tool supports a practical subset: child members, non-negative array indexes, wildcards, recursive descent and single-member comparison filters on array elements. It is not a full RFC 9535 validator. Unions, slices, functions, regular expressions and compound AND/OR filters are not supported.
Paste JSON or load a JSON or text file to browse its tree. Select a node to see and copy JSONPath, JavaScript, Python, jq and lodash access expressions.
Member names containing special characters use quoted brackets. JavaScript and Python use expressions such as data["users"][0]["name"], jq uses .["users"][0]["name"], and lodash uses an array path such as _.get(data, ["users", 0, "name"]) to avoid ambiguous dotted names. For JavaScript and Python, data represents your parsed JSON value; lodash also requires the library to be available as _.
| Syntax | Selects | Example |
|---|---|---|
$ | Root | $ |
.name / ["name"] | Child member | $.users[0]["display-name"] |
[0] | Zero-based array index | $.users[0] |
[*] / .* | All immediate children | $.users[*].name |
..name / ..* | Descendants | $..name |
[?(@.x>=1)] | Array elements matching one comparison | $.items[?(@.price>=1000)] |
Filters support ==, !=, >, <, >= and <=. Equality comparisons accept string, number, boolean and null literals without type coercion; ordering comparisons support numbers only. A missing member is distinct from null, so @.x != null also matches elements with no x member. The whole expression is parsed: unsupported characters and incomplete syntax produce an error rather than a partial result.
Files are limited to 2 MiB (2,097,152 bytes); JSON input is limited to 2,000,000 UTF-16 code units, and individual member names to 2,000. The tree supports up to 10,000 nodes and a nesting depth of 100. A generated path can contain up to 10,000 characters, with 5,000,000 characters across all generated paths. If formatting would exceed the input limit, your original input is kept. File reads time out after five seconds.
Queries are limited to 10,000 characters. Results are capped at 1,000 matches and traversal at 50,000 node visits. Arrays and objects in results show a compact count; select their path to see the value. Value previews are capped at 8,000 characters each and 200,000 in total.
Numbers use JavaScript double precision. Decimal values can round, very small values can become zero, and negative zero can display differently. Original number spellings are not preserved. Duplicate member names keep the last value. Non-finite numbers and integers outside the safe range of ±9,007,199,254,740,991 are rejected. Use a library suited to your requirements for larger documents, high-precision numbers or more advanced queries.
JSON Formatter and Validator
Validate JSON syntax, format or minify it while preserving number notation, string escapes and duplicate keys. Preview your input and inspect its structure in your browser.
CSV to JSON / JSON to CSV Converter
Convert CSV or TSV to JSON and flat JSON to CSV in your browser. Choose delimiters, preserve text values, preview data and download UTF-8 files.
Questions or feedback? Contact NanToo