How to view JSON as a table
- Paste JSON or open a file. Arrays of objects work best: every object becomes a row and every key a column.
- Click a column header to sort (click again to reverse the order) and type in the filter box to show only matching rows.
- Use Export CSV to download the visible rows or Copy for Excel to paste them straight into a spreadsheet.
Which JSON becomes which table
| JSON | Table |
|---|---|
| Array of objects | One row per object, one column per key (all keys of all objects) |
Object of objects, e.g. {"ada": {…}, "bob": {…}} | One row per entry plus a _key column |
| Any other object | Two columns: key and value |
| Array of arrays | Columns numbered 1, 2, 3 … |
| Array of plain values | A single value column |
| Nested objects | Columns like address.city, or compact JSON in one cell when Nested objects as columns is off |
Sorting and filtering
Numbers sort by value and text sorts naturally, so item2 comes before item10; empty cells always go last. The filter searches every cell of every row, including nested values shown as JSON. Large tables display 500 rows at a time, while sorting, filtering and export always use all rows.
Frequently asked questions
How do I turn a JSON file into an HTML table?
Open the file here and the table appears instantly. To reuse the data elsewhere, export it as CSV or copy it for Excel.
Can I paste the table into Excel or Google Sheets?
Yes. Copy for Excel copies the visible rows as tab-separated text, which spreadsheets split into columns automatically.
What happens to arrays inside the objects?
Arrays are shown as compact JSON in a single cell, for example ["a","b"], so no data is lost.
Is there a row limit?
There is no fixed limit. The table shows 500 rows at a time with a button to load more, and exports always include every row that matches the filter.