auto-flatten · sticky headers · Excel-paste

Render JSON as an interactive table

Read API responses faster. Auto-flattens nested objects to dot-path columns. Copy as TSV to paste straight into Excel or Sheets.

JSON → Table Workspace
Input size
188 B
5 lines
Rows
3
records
Columns
4
auto-flattened
Status
Valid
Excel-paste ready
Nested objects flattened with dot-notation
input · json array
output · table
idnameactivescore
1Alicetrue92.5
2Bobfalse78
3Caroltrue85.2
Quick Start

How to view JSON as a table

Sometimes a 2D grid reads better than 200 lines of nested JSON. Drop an array of objects and the tool auto-derives columns, flattens nested keys, and renders a scrollable table.

  1. 01

    Paste a JSON array

    Top-level array of objects works best. Single objects are wrapped in a 1-row table.

    Inputs parse through the native JSON.parse reviver chain — strict RFC 8259. Any syntax error returns line and column for the exact offending byte.

    arrayobjectsRFC 8259JSON.parsestrict
    input · raw.json · RFC 8259
    [{"id":1,"name":"Ada"}]
    loaded · parsed RFC 8259RFC 8259 · ready
  2. 02

    Headers from union of keys

    Headers come from the union across all rows — missing fields render as —.

    Indent options run through JSON.stringify(value, null, n); the second argument lets you sort, transform, or omit keys via a replacer if you ever wire one in.

    unionstableindentJSON.stringifylive
    columns · optionsauto · live
    id | name | age
    1  | Ada  | —
    2  | —    | 36
    options applied · livelive
  3. 03

    Nested fields flatten

    Objects are flattened with dot-notation (address.city). Arrays inside cells JSON-encode.

    Large documents stream through a useMemo with stable hashing so options re-apply instantly — no full re-parse if only formatting changes.

    dot.notationmemoisedinstantdiff-friendlydeterministic
    flatten · rendereddepth · ready
    address.city, profile.bio
    rendered · livediff-friendly
  4. 04

    Copy as TSV → spreadsheet

    One click copies a tab-separated stream. Paste into Excel, Sheets, or Numbers and rows / columns are preserved.

    Download is a Blob with application/json; copy uses the Async Clipboard API. Both round-trip identically to what the page rendered.

    TSVspreadsheetclipboardblob.json
    export · copiedTSV · done
    ✓ Copied to clipboard
    ✓ Ready for Excel
    shipped · ready to shipsuccess
Pro tips

Production-grade JSON, the right way

Stick to RFC 8259

Strict JSON has no NaN, Infinity, comments, or trailing commas. If you need those, look at JSON5 or JSON Repair.

Preserve key order for diffs

JavaScript preserves insertion order, but two parsers shouldn’t be assumed equal. Use Sort JSON Keys before diffing or hashing.

Big integers lose precision

JS numbers lose precision past 2^53−1. Transport large IDs as strings or use BigInt.

Escape inside HTML

When inlining JSON inside <script>, escape </ to <\/ so HTML parsing doesn’t close your tag early.

Validate at boundaries

Trust the wire as little as possible. Run incoming JSON through a schema (Zod / Pydantic) before it touches business logic.

Minify in production

Minify removes whitespace; gzip removes redundancy. Together they typically shrink JSON payloads 70–85% over the wire.

Use Cases

When to view JSON as a table

Whenever a flat grid beats a nested tree.

API exploration

Scan a response shape across many records in one view. Output round-trips losslessly through JSON.parse + JSON.stringify, so the file you save is byte-identical to what you see. Streaming parsers, jq pipelines, and Postgres jsonb columns all accept the result without complaint.

10x faster scan

Log triage

Spot anomalies in batches of structured logs. Pairs perfectly with sort-keys + diff for review-friendly fixtures in CI. Whitespace-only churn disappears and reviewers see real changes, which keeps PR comments focused on logic rather than indentation.

cleaner PR diffs

Stakeholder demos

Show PMs a table, not raw JSON. Handles emoji and non-ASCII via UTF-8 throughout — your data survives copy-paste between editors, terminals, and IDEs. Combining marks and ZWJ sequences come out the other side intact.

RFC 8259 valid

QA fixture review

Eyeball a fixture set before committing. Re-parses on every keystroke so syntax errors are caught at the exact character. Strict RFC 8259 — no trailing commas, no comments, no unquoted keys — keeps downstream parsers happy.

round-trip safe

Quick math

Copy as TSV → spreadsheet to sum / pivot. Streams large documents without a server round-trip — privacy stays in the tab. Heavy parsing runs through useMemo so even 5 MB payloads keep the editor responsive.

schema-friendly

Migration audits

Compare batches of records side-by-side. Output is byte-stable: same input plus same options always produces identical bytes, ideal for content-addressed caches and snapshot tests. Downloads ship with the application/json MIME so editors apply syntax highlighting.

production-ready
FAQ

Frequently asked questions

An array of objects. The tool wraps single objects into a 1-row table; deeply nested structures flatten via dot-notation.
As — (em-dash) so they're visually distinct from empty strings.
Not in v1 — the table is read-only. Copy as TSV → spreadsheet for sort/filter/pivot.
Renders fine into the tens of thousands of rows; for millions, expect slowness — the DOM is the bottleneck.
No. All parsing runs locally.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!