JSON Viewer & Mindmap
Runs in your browserPaste any JSON and instantly see it as a mindmap, tree, or formatted text. Pan, zoom, and click nodes to expand. Files stay in your browser.
The viewer parses your input twice. First it tries the strict built-in JSON.parse; if that throws, a relaxed pass strips // line comments, /* */block comments, and trailing commas, then re-parses. A small status pill at the top of the editor tells you which path was taken — useful when you're pasting a config file (tsconfig, ESLint, package.json fragments) and want to know whether it's actually valid JSON or just JSON-ish. The mindmap is a force-graph in radial-out DAG mode: drag any node to reposition, scroll to zoom, and click a leaf to copy its JSON Pointer path (e.g. /users/3/email) so you can paste it straight into a debugger or jq query. Tree view is the same data without the layout — keyboard navigable, with a search field that highlights matching keys.
Limits worth knowing
The mindmap renders comfortably up to tens of thousands of nodes; past that the layout still works but interaction gets sluggish on low-end devices. Above depth 2 the mindmap auto-collapses on first paint so you don't stare at an unreadable hairball — click a node to expand. Circular references (objects pointing back at themselves) are detected and rendered as [Circular] leaves instead of recursing forever. Streaming JSONL (line-delimited) is not supported — wrap your records in an array first.
How It Works
Paste or upload
Drop a .json file or paste text. Trailing commas and // comments are tolerated.
Pick a view
Mindmap for shape, Tree for keys, Raw for the formatted source — switch any time.
Export
Download the mindmap as SVG or PNG, or copy any node's path to clipboard.
Frequently Asked Questions
Does my JSON get uploaded anywhere?
No. Parsing and rendering happen entirely in your browser tab — there is no server round-trip.
How big can the JSON be?
The renderer handles tens of thousands of nodes. Very large files (multi-megabyte) collapse beyond depth 2 by default so the mindmap stays readable; click a node to expand.
Can it parse JSON with comments?
Yes — strict JSON.parse runs first, then a relaxed pass that strips // line comments, /* block */ comments, and trailing commas. The status pill tells you when relaxed mode kicked in.
What about circular references?
Detected and rendered as [Circular] leaves so the tree never recurses infinitely.