JSON Studio
A JSON workbench: edit with syntax checks, fix broken JSON safely, see it as a 3D graph, cards, tree or table, diff it, validate a schema, query with jq, and convert to CSV, XML, YAML or SQL.
JSON
·Empty
Paste, type or import JSON — or CSV, XML, YAML and SQL — and see it as a tree, a 3D graph, cards, a table and statistics. Nothing leaves your browser.
Runs in your browser — nothing you enter leaves this device.
About this tool
What it does
JSON Studio is a workbench for JSON: an editor on the left, views and tools on the right, and one command bar above. The editor marks the exact line and column of a mistake, and Fix JSON repairs broken JSON while listing every change. The views show the document as a Tree, a Graph and Cards in 3D or 2D, a Table that flattens nested data into columns, Stats, and a field Profile with data-quality warnings. The tools compare it with another payload, validate it against a JSON Schema, query it with JSONPath or real jq, and write its types in twelve languages. Import and Export read and write JSON, CSV, XML, YAML, SQL and NDJSON. Keys keep their order and numbers stay exactly as typed. JSON up to 1 GB opens as a read-only large file.
How to use it
- Paste JSON, drop a file on the editor, or press Import (also for CSV, XML, YAML, SQL or NDJSON).
- If the JSON is broken, press Fix JSON: each repair is listed with its line before anything changes.
- Use the command bar — Beautify, Minify, Sort keys, Stringify and Parse, Copy, Full screen — or press Ctrl+K (⌘K on a Mac) to find any command by name; ? lists every shortcut.
- In Graph and Cards the wheel zooms toward the pointer and dragging moves; press a dot to open or close it, double-click to focus on it, and use the breadcrumbs or Back to return.
- In Table, choose whether nested arrays stay as JSON, spread into columns, or become one row per item; download the table as CSV.
- Open Query, Diff, Schema, jq or Types for deeper work, and Export to download any format.
Limits and your data
- The editor holds 5 MB. Larger JSON or JSON Lines, up to 1 GB, opens read only — text, Tree, Table, Stats, Profile, Query, search and a sampled Graph; Beautify, Minify and Sort become downloads — and any value up to 2.5 MB opens in the editor. In Chrome, 100 MB opens in about 3 seconds and 500 MB in about 26; allow four times the file size in memory.
- The Graph draws 25 items of each array by default (up to all of them): at most 20,000 values in 2D and 4,000 in 3D.
- Cards show at most 100 rows each (30 in 3D); any other row opens with a double-click.
- Fix JSON only makes repairs whose meaning is clear — comments, trailing or missing commas, quotes, unquoted keys, True/None, unclosed brackets — and refuses NaN, Infinity and bare words rather than guess.
- The Table shows 100 rows at a time (more on request); its CSV and Export include every row, up to 3 million cells.
- The Query tab speaks the Studio’s own JSONPath dialect, built to run over files of any size — not RFC 9535: filters are written [?( … )], there are no functions such as length() or match(), and =~ /regex/ is an extension. The JSONPath tool gives standard RFC 9535 results.
- jq is the real jq 1.8 compiled to WebAssembly, a 330 KB download the first time. 3D needs WebGL; without it the 2D views are shown.
- Your JSON is not uploaded, logged or sent anywhere: parsing, repair, diff, schema checks, jq and every conversion run inside this page. The 3D views, the editor and jq download their code the first time you use them, and keep it. Your settings and, if you allow it, your last few inputs stay on this device. A large file stays in this tab’s memory only, and closing it frees that memory.
Questions
Can Fix JSON change my data?
It is built not to. Before offering a repair, the studio compares every key, string and number in your text with the repaired JSON. If anything would be lost or changed, it shows an error instead.
What do Stringify and Parse do?
Stringify turns the JSON into one string literal — JSON, JavaScript or bare escaped text — to paste into code or another JSON field. Parse does the reverse, even when a value was stringified several times. Both show the result first; the editor changes only when you choose.
How does flattening work?
Objects always become dotted columns such as customer.city. Arrays can stay as JSON text in one cell, spread by index (items[0].sku), or become one row per item with the surrounding fields repeated, like a SQL join.
Which languages can Types write?
TypeScript, Zod, C#, Java, Kotlin, Go, Python (Pydantic), Rust (serde), Swift (Codable), Dart, PHP and JavaScript (JSDoc), with optional and nullable fields worked out from every item.