Skip to content
4all.tools

Explore JSON Online as a Tree

Explore strict JSON as a bounded, expandable tree. Inspect value types, browse large arrays in pages, and copy a selected JSON path while your input stays in your browser.

Tool workspace

Explore JSON as a tree

JavaScript is required to explore JSON in your browser.

Enter one complete JSON value. Processing stays in this browser.

Maximum input: 1,000,000 UTF-16 code units.

0 of 1,000,000 UTF-16 code units

Example with an array and a special property name

{"name":"Ada","tags":["json","tools"],"a.b[0]":{"enabled":true}}

Your JSON is processed locally and is not sent to a server or saved by this tool.

How the tree viewer works

Paste one complete strict JSON value, then choose Explore JSON. Expand objects and arrays, load large child lists by page, select a row, and copy its path.

The root can be any JSON value, including a primitive such as 42 or true. Empty objects and arrays are shown as containers with no children.

Simple property names use dot notation such as $.name, array positions use brackets such as $[0], and special names use quoted brackets such as $["a.b"]. This display path does not run a JSONPath query.

A large number may lose precision in its JavaScript number value. When detected, the preview still uses the number lexeme from the source text.

Limits: 1,000,000 UTF-16 code units, 200 nested levels, 100,000 values, 100 diagnostics, 1,000,000 parser work units, 100,000 tree index visits, 50 children per page, 500 mounted rows, and 120 UTF-16 code units per preview. Timeouts: 15 seconds for parsing and 3 seconds for a child page.

Tree actions

Enter JSON to begin. No parsing starts until you choose Explore JSON.

Explore one strict JSON value

Paste one complete JSON value and choose Explore JSON. Parsing starts only after that action. The tree initially shows the root; expand an object or array to inspect its children. Large child lists are split into pages of 50 rows. Previous and next page controls load children on demand. Empty objects and arrays are identified as containers with no children. A primitive value such as 42, true, null, or "hello" can be the root too.

Use the arrow keys to move through the tree. Select a row to see its type, depth, preview, and path. Choose Copy selected path to copy that readable path. For example, the following input has an array and a property whose name literally contains a period and brackets:

{"name":"Ada","tags":["json","tools"],"a.b[0]":{"enabled":true}}

The array item has path $.tags[0]. The special property has path $["a.b[0]"], preserving its complete literal name. Simple property names use dot notation, such as $.name; array positions use brackets. This path notation identifies a location for display and copying. It does not execute a JSONPath query.

Strict JSON, diagnostics, and number precision

The input must be strict JSON: comments, trailing commas, single-quoted strings, and duplicate property names are not accepted. Parser errors and warnings are shown with a source location or JSON path when available. The diagnostic list is bounded and indicates when not every diagnostic is shown.

JSON numbers are parsed to JavaScript number values for semantic inspection. A large integer or a number with many significant digits can therefore lose precision in that semantic value. When the parser detects this risk, the tool shows a warning. The number preview uses the original source lexeme, so it preserves the spelling from the input even when the represented value may have lost precision.

Browser and display limits

The tool accepts up to 1,000,000 UTF-16 code units, nesting up to 200 levels, 100,000 JSON values, 100 diagnostics, and 1,000,000 parser work units. Building the tree also allows up to 100,000 index visits. Each child page contains at most 50 rows; at most 500 rows are mounted at once. Row previews are limited to 120 UTF-16 code units. Parsing waits up to 15 seconds for a worker response, and a child page request waits up to 3 seconds. These limits keep work and the visible interface bounded; collapse branches or use a smaller input if a limit is reached.

Your JSON is processed locally in this browser. It is not sent to a server, placed in the URL, or saved by this tool. JSON Formatter & Validator checks or formats the input before exploration; JSON Diff compares two documents when you need to review changes between them.