JSON to Excel & CSV
Paste JSON or a .json file and get a spreadsheet: nested objects become columns, and codes and long IDs keep their exact value.
The file is read in your browser and never uploaded.
Table preview
The table appears here.
Paste JSON or choose a file to see the table.
What it does
JSON is a tree and a spreadsheet is a grid, so something has to decide how one becomes the other. This converter takes an array of records and gives every record a row, using the keys as columns. A nested object becomes columns named with a dot, so a customer object with a name inside appears as customer.name. A list of simple values, such as tags, becomes one cell holding them separated by commas, because a column for every tag would make the sheet unreadable. A list of objects keeps its position in the name, like items.0.sku, so nothing is quietly dropped.
Real API responses are rarely a bare array. When the JSON is an object wrapping a single list, such as a response with ok and data, the list inside is used as the table and the wrapper is ignored. A single object becomes a table with one row. Files in the JSON Lines format, with one record per line, are read too, which is how many exports and log files are written. Records with different keys are lined up by column name, and a record that lacks a key gets an empty cell instead of shifting the row.
The Excel download is a real .xlsx file, which matters because opening a CSV in Excel makes Excel guess each cell's type: a code like 007 loses its zeros, 1/2 turns into a date and an 18-digit id becomes 1.23E+17. In an .xlsx each cell states what it is, so those values stay exactly as written while ordinary numbers stay numbers and still add up. Everything runs in your browser: choosing a file reads it on your device, and nothing is uploaded or stored.
How to use it
- Paste your JSON into the box, or choose a .json or .jsonl file from your device.
- Check the preview: columns come from the keys, and nested values appear as name.subname.
- Press Download Excel file for a spreadsheet, or Download CSV if you need plain text. Copy for Excel & Sheets pastes the table straight into a sheet that is already open.
- If the JSON is invalid, the message under the box says what is wrong and where; fix it and the table appears.
Frequently asked questions
How are nested objects and arrays handled?
Nested objects become dotted column names: {"customer": {"name": "Ana"}} gives a column called customer.name. An array of simple values becomes one cell with the values separated by commas. An array of objects is numbered, so the first item's sku becomes items.0.sku. Nothing is dropped, and every row ends up with the same columns.
My JSON is an object with a data array inside. Does that work?
Yes, and that is the common shape for an API response. When the top level is an object containing a single array, that array becomes the table and the wrapper fields around it are ignored. The line under the table says which property was used, so you can see what was read.
Does it support JSON Lines or NDJSON?
Yes. If the text is not valid JSON as a whole but every line is a record on its own, it is read as JSON Lines, one record per row. That is how many database exports, log files and streaming APIs write their output.
What happens to null, true and false?
null becomes an empty cell rather than the word null, because an empty cell is what a spreadsheet means by no value. true and false are written as TRUE and FALSE, which Excel and Google Sheets recognise as boolean values rather than text. Empty objects and empty arrays also become empty cells.
Why choose the Excel file over the CSV?
A CSV is only text, so Excel guesses the type of every value when it opens the file and changes codes with leading zeros, values like 1/2 and very long id numbers. The .xlsx download records the type of each cell, so those values survive exactly as written while real numbers stay numbers. Choose the CSV when you need a plain text file for another program.
Is my data uploaded anywhere?
No. The JSON is parsed and the file is built inside your browser. Nothing is sent to a server, nothing is stored, and there is no account. Once the page has loaded you can disconnect from the internet and the tool still works.
Related tools
CSV to JSON
Turn CSV text or a file into JSON as objects, arrays or JSON Lines, with codes like 007 and long IDs kept as strings.
Spreadsheets & dataCSV to Excel (XLSX)
Turn CSV text or a CSV file into a real Excel workbook that keeps 007, 1/2 and long IDs exactly as written, while numbers stay numbers.
Spreadsheets & dataExcel & CSV to Markdown Table
Paste cells from Excel or Google Sheets, or CSV text, and get a clean markdown table with column alignment and a live preview.
Spreadsheets & dataAI Table to Excel & Google Sheets
Copy a table from ChatGPT, Claude or Gemini into Excel or Google Sheets as real rows and columns, or download it as a CSV.
Spreadsheets & data