Overview
JSON Explorer renders any JSON document as a collapsible hierarchy. Everything runs in your browser — nothing is uploaded.
Loading
- Load JSON… opens a modal where you can paste, type, or upload a JSON file.
- The tree starts collapsed — click the chevron on any branch to expand one level, or right-click for Expand all.
- Nothing is stored — reloading the page gives you a fresh start.
- Auto-heal: if the JSON doesn't parse we try to fix common issues (UTF-8 BOM, smart quotes, single-quoted strings,
// or /* */ comments, unquoted keys, undefined / NaN / Infinity / True / False / None, trailing commas) and show a dialog explaining exactly what was changed before loading.
Navigating
- Click a row to toggle that branch. Right-click any row for the full menu.
- Expand all / Collapse all work on the entire document (from the header) or on the current node's subtree (from the right-click menu).
- Search at the top finds matches in keys, values, or both — use Enter / Shift+Enter (or the arrows) to step through matches. Ancestors of a match auto-expand.
- Search options: regex (use JS regex syntax), exact (whole-value match, otherwise substring), and ignore case (on by default).
- Limit to takes a path-glob filter like
root.users[].address — [] matches any index and * matches any key. Empty filter = whole document. Right-click any node for Search inside this node (locks to that exact path) or Search siblings (matching pattern) (replaces array indices with [], so right-clicking users[2].address sets the filter to root.users[].address).
Editing
- Edit opens a modal where you can change the key (object children only) and the value. The value field accepts any literal JSON — numbers, strings (with quotes),
true / false / null, arrays, objects.
- Add child appends to an object (with a key) or an array. If the pasted value's structure matches the container (object→object, array→array), the modal offers Add as one child or Merge at this level — explicit, per add.
- Delete (prune) removes the node and its subtree. Confirmation dialog appears for branches with descendants.
Info & pattern check
- Info on any node shows path, type, immediate child count, total descendants, JSON byte size, max depth, and a type histogram.
- For containers it also runs a shape grouping check: every child gets a structural fingerprint (recursive: type + sorted keys + value shapes). Outliers stand out — useful for spotting that one item in an array of users without an
email field.
- For arrays of objects you get a union of keys table — each key, how often it appears, and which types it takes.
- Drill down: click any row in the union-of-keys table to project that key across every sibling and run the same analysis on the resulting synthetic array. Repeat to go arbitrarily deep — e.g.
suppliers → address → city. A breadcrumb at the top of the info panel lets you jump back any number of levels.
- When a drill lands on a column of primitives (every projected value is a string / number / boolean), you also get a value distribution table — distinct values with counts, plus min / max / mean for numbers.
- Generate JSON Schema in the info modal produces a draft-07 schema inferred from the current view (works on drilled projections too).
- Info (deep) from the right-click menu walks every descendant — slower on big subtrees but more thorough.
Saving & copying
- Save… in the header downloads the whole document.
- Right-click → Copy subtree to clipboard puts that branch on the clipboard as formatted JSON.
- Right-click → Save this subtree… downloads it as its own JSON file.
- The info modal has matching Copy and Save buttons that act on the current view — including any drilled projection.