JSON to Table Viewer — Sortable, Searchable JSON Viewer
What's included
Features
About this tool
Paste a JSON Array and View It as a Sortable, Searchable Table — Export to CSV
You got a JSON response from an API or a database export and you need to find a specific record, sort by a field, or spot missing values — but scrolling through hundreds of raw JSON objects in a text editor is slow and error-prone. Paste the array here and click View Table to see every record as a spreadsheet row instantly.
The tool derives columns from the union of all keys across the entire array, so sparse arrays where not every object has every key are handled gracefully — missing fields show as empty cells. Click any column header to sort ascending or descending. Type in the search box to filter rows across all visible columns simultaneously. Toggle column visibility to hide internal IDs and metadata fields you don't need. Configure pagination at 10, 25, 50, or 100 rows per page.
The CSV export downloads the current filtered, sorted, and column-restricted view — apply a search first to export only the records you need, hide columns you don't want, and click Export CSV to get a clean file ready for Excel, Google Sheets, or database import. All processing is entirely client-side — no data is transmitted to any server, safe for sensitive API responses and private database exports.
Step by step
How to Use
- 1Paste your JSON array into the inputPaste a JSON array of objects into the textarea at the top of the tool — each object becomes a table row and each unique key becomes a column. If your data is wrapped in a parent object (e.g.
{"data": [...]}) paste just the inner array value. Click Sample to load a 5-row employee dataset to see the tool in action. - 2Click Parse to render the tableClick the Parse → button or press
Ctrl+Enterto parse and render the table. The tool auto-derives all columns from the union of every unique key across all objects, so sparse arrays where not every object has every field are handled gracefully — missing cells show as empty. - 3Sort by clicking column headersClick any column header to sort the table ascending by that column — an arrow indicator appears next to the header. Click the same header again to reverse to descending. The sort is applied to the entire dataset, not just the current page.
- 4Search and filter rows in real timeType in the Search box above the table to instantly filter visible rows. The search matches against every visible column simultaneously — it is case-insensitive and partial. Hiding a column via the Columns toggle also removes it from the search scope.
- 5Toggle column visibilityClick Columns ▾ to open the column picker. Check or uncheck individual columns to show or hide them. Hidden columns are excluded from both the search and the CSV export — useful for stripping internal IDs and metadata before sharing data with non-technical stakeholders.
- 6Paginate large datasetsUse the rows per page selector (10, 25, 50, 100, or All) to control how many rows appear at once. Use the pagination controls at the bottom to navigate. The row counter above the table shows how many rows are currently visible after filtering.
- 7Export to CSV or copy as TSVClick ↓ CSV to download the current filtered, sorted, and column-restricted view as a comma-separated file ready for Excel, Google Sheets, or database import. Click TSV to copy the data as tab-separated values to your clipboard for pasting directly into a spreadsheet.
Real-world uses
Common Use Cases
Got questions?
Frequently Asked Questions
The viewer expects a JSON array of objects at the top level — for example [{"name":"Alice","age":30},{"name":"Bob","age":25}]. Each object in the array becomes a row in the table, and each unique key across all objects becomes a column header. If your JSON is wrapped in a parent key (e.g. {"users":[...]}), paste just the inner array value. The tool automatically handles sparse arrays where not every object has every key, filling missing cells with empty values.
Click any column header to sort the table by that column in ascending order — a sort indicator arrow appears next to the header. Click the same header again to reverse to descending order. Click it a third time to clear the sort and restore the original order. For complex multi-field analysis where you need to sort by multiple columns simultaneously, use the CSV export and sort in Excel or Google Sheets which support multi-level sorting.
The search box filters visible rows in real time as you type, matching your query against every value in every visible column simultaneously. The match is case-insensitive and partial — typing "lon" will match "London", "elong", or any value containing that substring in any column. Hiding a column via the column toggle also removes it from the search scope, so only visible columns are included in the filter — useful for excluding ID or metadata fields from your search.
Yes. Apply a search filter to reduce the visible rows to only the records you want, toggle off any columns you do not need in the export, and then click Export CSV — the download will only include the currently visible rows and visible columns. This makes it easy to extract subsets of large JSON datasets for import into Excel, Google Sheets, or a database without writing any code or scripts.
The viewer is optimized for flat or shallow JSON arrays where values are scalars — strings, numbers, booleans, and null. Nested objects and arrays as values are serialized to their compact JSON string representation and shown in the cell as text. For deeply nested data, consider flattening it first using jq or a JSON flatten utility before pasting, which will give you a proper column for each nested field rather than a collapsed JSON string.
The tool runs entirely in the browser using JavaScript. Arrays of up to a few thousand objects with dozens of columns render smoothly on most modern devices. Very large datasets — 10,000 or more records with many fields — may be slower to parse and render on initial load. For large datasets, set the rows-per-page to 25 or 50 to keep the DOM efficient and use the search and column-toggle to narrow the visible data before scrolling.
Yes, and it is one of the most common use cases. Copy a JSON array response from your browser's Network tab, Postman, Insomnia, or any REST/GraphQL client and paste it directly into the viewer. The table immediately shows all records with all fields aligned in columns. Sort by a timestamp column to find the newest entries, search for a specific user ID or status value, or toggle off verbose metadata columns to focus on the fields relevant to your debugging.
All JSON parsing and table rendering happens entirely in your browser using JavaScript — no data is transmitted to any server at any point. You can safely use this tool with sensitive API responses, private database exports, authentication tokens, or any other confidential data. The tool has no analytics that capture or log input content, and closing the browser tab permanently discards all pasted data.