Convert a JSON array of objects into a readable table online. This JSON to table converter detects columns automatically, reports row and column counts, flattens nested objects when needed, and exports the data as CSV.
Turn an array of JSON objects into rows and columns. Each object becomes one row, and the object keys become the table headers.
Columns are collected from every record in the array. When a record does not contain a column, that cell stays empty instead of shifting the row.
The preview reports how many rows and columns were detected, so you can confirm the whole array was read before exporting.
Flatten nested objects into dot-notation columns such as address.city. With flattening off, an object or array value is shown as compact JSON in a single cell.
Download the table data as a UTF-8 CSV file with a BOM, ready for Excel, Google Sheets, or other spreadsheet tools.
Paste JSON into the editor or open a .json file from your device. Parsing and rendering happen in the browser.
Parsing, column detection, and CSV generation run in your browser. No account and no upload to a conversion server.
Paste an array such as [{"name":"Alice"},{"name":"Bob"}] or open a .json file. Every item has to be an object, because each item becomes one row.
The table renders as soon as the JSON parses. Read the row and column counts and scan the headers to confirm every field you expect is present.
Enable Flatten nested objects to turn nested properties into dot-notation columns. Leave it off if you prefer to see nested values as compact JSON in one cell.
Click the CSV button to save the table data. Open the file in Excel or Google Sheets to sort, filter, or chart the records.
[
{ "name": "Alice", "age": 30, "city": "New York" },
{ "name": "Bob", "age": 25, "city": "London" }
]name age city Alice 30 New York Bob 25 London
A JSON to table converter takes structured JSON records and lays them out as rows and columns so they are easier to read. The input that works best is an array of objects, where each object is one record and each property is one column.
Developers use this view when inspecting an API response, a database export, a log file, or a configuration dump. Reading 200 records as a table is usually faster than scrolling through raw JSON text, and the row and column counts tell you at a glance whether the whole array was read.
The supported input is a top-level array of objects:
[{"name":"Alice","age":30},{"name":"Bob","age":25}]Every item in the array has to be an object. An array of strings such as ["a","b"], an array of numbers, or an array of arrays cannot be turned into rows and columns, so it is rejected with an error message. If your document wraps the records in an object such as {"results":[...]}, paste the inner array instead.
Real records rarely share exactly the same keys. A user list may have an optional phone number, an order list may have a refund field only on some rows. The converter collects the keys from every object in the array, in the order they are first seen, and uses that union as the columns.
When a record does not contain a column, the cell stays empty. Row alignment is preserved, but a source array with many optional properties produces a wide table with many empty cells.
A flat table works best when every cell holds a scalar value such as a string, number, boolean, or null. Nested objects do not fit into a single cell, so the optional flattening mode rewrites paths as dot-notation columns:
{"user":{"name":"Alice"},"address":{"city":"New York"}}becomes columns such as user.name and address.city. Nested arrays are harder: they can hold many values or many objects, and there is no single obvious two-dimensional shape for them. With flattening off, an object or array value is shown as compact JSON text inside one cell.
The three options solve different problems, and it is worth picking the right one before you start:
The preview is a static view generated from your input. It does not offer sorting, filtering, pagination, editing, or column selection, and it does not include a spreadsheet-style toolbar. The preview also renders only the first 100 rows so the page stays responsive; the reported row count and the CSV export still cover every record.
If you need to sort, filter, chart, or edit the records, download the CSV and continue in a spreadsheet application. If you need markup to embed in a page, use the JSON to HTML Table page instead.
This tool is designed to parse JSON and build the table in your browser rather than uploading the input to a remote conversion service. That is useful for internal datasets and development data, but it is not a guarantee of complete security. Avoid entering credentials, access tokens, personal information, or confidential production data into any web-based tool.