JSON to CSV Converter

Got a JSON file you need as a spreadsheet? Drop it here, or paste the JSON straight into the box, and you'll get a CSV back. The whole thing runs inside your browser tab, so your data never gets uploaded to a server.

An array of objects becomes a table with one row per object and a column for every field it finds. A plain object turns into a two-column Key and Value list. And if your JSON wraps several separate lists, you get a ZIP with one CSV per list, since a single CSV file can only hold one table.

Good to know: it's free, there's no signup, and nothing is uploaded anywhere. The upload box shows the current file-size limit; pasting JSON has no size cap because it's just text sitting in the box.

Drop your JSON file here or click to browse

Maximum file size: 10 MB

Convert JSON to CSV without sending your data anywhere

Pasting raw JSON into a spreadsheet by hand goes wrong fast. Braces and quotes end up in the cells, arrays spill sideways, and you lose ten minutes cleaning up what should have been a plain table. This converter reads the structure for you and writes a real CSV, with a column for every field and a row for every record. Drop in a .json file or paste the text straight into the box, and the result downloads right there in your browser.

It's built for the everyday stuff: an API response you saved, a config export, a list of records pulled from a database. You don't set any options or tick any boxes. The tool looks at the shape of your JSON and picks the layout that fits it.

What actually happens to your file

Everything runs inside your browser tab using a JavaScript library called SheetJS. Your JSON is never sent to a server, which is the main reason the conversion feels instant even on a slow connection. There are two ways to feed it in: upload a file, or switch to the paste tab and drop the JSON in as text. When you paste, it checks the JSON as you type and shows a green tick when it's valid or the exact parse error when it isn't, so you're never left guessing why the button is greyed out.

The layout depends on what you hand it. An array of objects becomes a table where the columns are every field name found across all the objects, one row per object. If some objects are missing a field, that cell is left blank rather than shifting the others along. A single object with no list inside turns into a simple two-column Key and Value sheet. A plain array of values, like a list of numbers or strings, comes back as one column called Value.

How nested objects and arrays come out

Here's the part that trips people up, so it's worth being blunt. This tool does not explode nested data into separate columns. It won't turn a "user" object into user.name and user.email columns. Instead, any value that is itself an object or an array gets written into its cell as JSON text. So a "user" field holding an object arrives as one cell reading {"name":"Ana"}, exactly as it looked in the source file.

For flat data that's fine, and honestly it's the safer default, because nothing gets quietly dropped on the way through. But if your records are deeply nested and you need every value as its own column, this isn't the right tool for that job. Flatten the JSON first, or use a converter built around dot-notation output.

When your JSON holds several lists

Sometimes the top level is one object wrapping several separate lists, something like a users list next to an orders list. A single CSV can only hold one table, so when the tool spots more than one key and at least one of them is an array, it writes each list to its own CSV and bundles them into a ZIP, one file per list. You download the ZIP, open it, and there's users.csv and orders.csv sitting side by side. Keys that aren't lists are skipped, so a stray count or timestamp next to the arrays won't create an empty file.

Where it struggles, honestly

A few things are worth knowing before you convert:

  • Booleans arrive as the words true or false, numbers stay as numbers, and null or missing values become empty cells.
  • The CSV is written as UTF-8 but without a byte-order mark. If Excel garbles accented characters when you double-click the file, open it through Data then From Text/CSV and pick UTF-8. Google Sheets and LibreOffice read it correctly either way.
  • A JSON file that's just a bare number, string, or true at the top level has no rows or columns to build, so you'll see an "unsupported structure" message. Wrap it in an array or object and it converts.
  • Because the work happens in your tab, a genuinely huge paste leans on your device's memory instead of a server. Everyday files are fine; multi-hundred-megabyte data is where a browser starts to feel it.

A real example

Say a REST endpoint hands you 240 orders as an array of objects, each with an id, a customer name, a total, and a nested items array of line items. Paste that in and you get a CSV with id, customer, and total as clean columns, plus an items column where each cell holds the JSON for that order's line items. Open it in Sheets, and summing the total column takes one formula. The conversion itself is basically instant; the slow part is deciding what to do with the numbers afterward.

Working the other direction later on? You can convert a CSV back into JSON whenever you need to reverse the process.

What your downloaded file is named

The download keeps your original filename and adds the site domain, so products.json comes back as products-thefreeconverter.com.csv. If you used the paste tab, there's no original name to borrow, so it saves as converted-data-thefreeconverter.com.csv. Multi-list JSON arrives as a .zip with the same naming. None of it is random, which makes the file easy to spot in a busy downloads folder.

When a different tool fits better

Want one file with separate tabs instead of a ZIP of loose CSVs? The JSON to Excel converter reads the same JSON and gives back a single XLSX workbook.

If the CSV just needs a quick tidy-up, a column removed or a value corrected, the CSV editor handles that in the browser before you download it again.

One note on privacy to close out. Because this runs in your browser, your JSON is read and converted on your own machine and never reaches us. Close the tab and it's gone. The CSV you download is the only copy that exists, and there's nothing on a server for us to store or delete.

JSON to CSV questions, answered

Similar tools to explore

JSON XLSX

JSON to Excel Converter

Drop in a JSON file, or paste the text, and get back an XLSX workbook. Arrays turn into rows with a header, and a JSON object with several sections comes back as one sheet each. It runs in your browser, so the file never leaves your computer.

Convert to Excel
JSON

CSV to JSON Converter

Transform CSV data into structured JSON format for APIs, web applications, and data integration

Convert to JSON
XLSX { "k": "v" }

Excel to JSON Converter

Transform Excel spreadsheets into structured JSON data instantly. Perfect for APIs, databases, web applications, and data analysis workflows.

Convert to JSON
DOCX # MD

Word to Markdown Converter

Transform Microsoft Word documents into clean, portable Markdown files instantly. Perfect for GitHub README files, documentation, blogs, and static site generators.

Convert to Markdown
PDF

Free TXT to PDF Converter

Convert TXT files to PDF documents instantly. Perfect for code files, logs, notes, and plain text documents.

PDF My Text
M↓PDF

Markdown to PDF Converter

Turn Markdown into a clean, shareable PDF. Paste your text or upload a .md file and get back a real A4 document with the tables, code blocks, and lists intact.

Convert to PDF