GALAXY OF TOOLS

DEV SECTOR

JSON to Table Viewer

Turn a JSON array into a sortable, filterable table with flattened nested fields and CSV, TSV or Markdown export.

Parsing and rendering happen in your browser; the JSON is never uploaded.

Runs entirely in your browser. Nothing you enter or upload is sent to a server.

See any JSON array as a real table

API responses, exported records and log dumps are usually JSON arrays of objects — easy for programs, hard for eyes. This JSON to table viewer turns that array into a proper grid: one row per object, one column per key, nested objects flattened into dotted columns such as customer.city, with sorting, filtering, a column chooser and paging for large files. When the array is buried inside a wrapper object ({"data": {"orders": [ … ]}}) the viewer finds every array in the document and lets you pick the one to show.

It is built for the quick checks developers, analysts and support staff do all day: confirm that a response has the fields you expect, spot a null where there should be a value, sort by amount to find the biggest order, or filter by a customer name. When you are done, the visible rows and columns export as CSV, TSV or a Markdown table for a spreadsheet, a ticket or a README.

The JSON is parsed by JavaScript in your browser. Nothing is uploaded, so production data and API keys never leave your device.

How to use the JSON to Table Viewer

  1. Paste JSON into the input, drop a .json file on it or press Load file. JSON Lines (one object per line) is accepted too. A sample is loaded so you can explore first.
  2. Check Array to show. The viewer lists every array it found with its path and size and pre-selects the largest array of objects; choose another path if you need a different one.
  3. Leave Flatten nested objects on to get columns such as address.city, or turn it off to keep nested objects as JSON in a single cell.
  4. Click a column heading to sort ascending, again for descending and a third time to restore the original order. Type in Filter rows to keep only rows that contain the text in any visible column.
  5. Open Columns to hide or show columns, and set Rows per page if the file is large.
  6. Pick CSV, TSV or Markdown under Export as, then Copy or Download. Exports contain the filtered, sorted rows and the visible columns only.

JSON to Table Viewer features

Finds the array for you

Every array in the document is listed with its JSONPath-style location — $.data.orders, $.results[0].items — and the most table-like one is chosen automatically.

Nested-value flattening

Objects inside objects become dotted columns (customer.address.city); arrays and deeper structures stay as compact JSON so nothing is lost.

Type-aware sorting

Each column shows its detected type — number, string, boolean, date, array, object, null or mixed — and numbers sort numerically while text sorts naturally (file2 before file10). Empty cells always sort last.

Filter, choose columns, page

A live text filter, per-column checkboxes with show-all/hide-all and page sizes from 25 to 1,000 rows keep even six-figure arrays usable.

Three export formats

CSV with proper quoting and a UTF-8 byte-order mark for Excel, TSV for quick pasting into Sheets, and a Markdown table with right-aligned numeric columns.

Ragged data handled

Keys that appear in only some objects become columns with blank cells, so inconsistent records are visible rather than hidden.

How nested JSON becomes columns

Flattening follows one rule: an object inside a row contributes its keys prefixed with the parent key and a dot. Arrays are not expanded into extra rows, because that would change the row count and duplicate data; they are shown as JSON in one cell instead.

JSON in a rowColumns produced
{"id": 7, "customer": {"name": "Asha", "city": "Pune"}}id, customer.name, customer.city
{"tags": ["books", "gift"]}tags containing ["books","gift"]
{"price": {"amount": 499, "currency": "INR"}}price.amount, price.currency
{"meta": {}}meta containing {} (empty objects are kept as a value)
A row that is a plain value such as "books"one column named value

Reading the type labels

The small label under each column name is worked out from the non-null values in that column:

  • number, string, boolean — every value has that type. Numbers are right-aligned.
  • date — strings that look like ISO 8601 dates or timestamps (2026-10-16, 2026-10-16T09:12:00Z). They sort correctly as text because ISO dates are lexically ordered.
  • array / object — nested data shown as JSON. Switch flattening off to see whole objects, or on to split them into columns.
  • null — the column has no values at all in this array.
  • mixed — a column with more than one type, for example numbers in some rows and strings in others, which is often the sign of an upstream bug worth checking.

Related conversions

When you need a file rather than a view, JSON to CSV converts the whole document with more options, and the CSV Viewer does for spreadsheets what this page does for JSON. To check or pretty-print the JSON first, use the JSON Formatter; to extract a specific array with an expression before viewing it, try the JSONPath Tester.

JSON to Table Viewer FAQ

Is it safe to paste private JSON into this table viewer?

Yes. Parsing, flattening, sorting and exporting all run in your browser. The data is never sent to a server and is discarded when you leave the page.

My JSON is an object, not an array. Can I still view it as a table?

Yes. If the object contains an array anywhere inside, the viewer lists each array in “Array to show” and picks the best one. If it contains no arrays, the object itself is displayed as a single-row table with one column per key.

How large a JSON file can the JSON to table viewer handle?

Files up to 120 MB can be loaded; arrays with hundreds of thousands of rows work on a typical laptop thanks to paging. Live updating pauses above 2 MB — press Render table instead. Columns are capped at 400.

Why do some cells show null and others are empty?

A cell shows null when the key exists with a null value, and is empty when the key is missing from that object. The difference matters when you are checking an API contract.

Does sorting change the exported file?

Yes, on purpose. Exports use exactly what you see: the current sort order, the active filter and the visible columns. Clear the filter and show all columns to export everything.

Can I turn the table into a Markdown table for GitHub?

Choose “Markdown table” under Export as and press Copy. Numeric columns are right-aligned with ---:, pipes inside values are escaped, and line breaks become <br> so the table renders correctly.

You might also need