Phrasit

Search Phrasit

Search every tool, guide, and citation page.

FREE · FLATTENS NESTED JSON · DOWNLOAD · PRIVATE

JSON to CSV converter

Turn a JSON array of objects into a CSV or TSV you can open in Excel or Google Sheets. Nested objects flatten into dotted columns, missing fields become empty cells, and you can pick a delimiter then copy or download. Everything runs in your browser, nothing uploaded.

Delimiter:

About the JSON to CSV

The JSON to CSV converter turns a JSON array of objects into a comma-separated table you can open in Excel, Google Sheets, or any spreadsheet. JSON is how APIs and apps exchange data, but spreadsheets and many import tools speak CSV, so this bridges the two. Paste an array, and each object becomes a row while the object keys become the column headers, in the order they first appear.

It does the awkward parts for you. Objects in real data are rarely flat, so nested objects are flattened into dotted columns like address.city, and the converter takes the union of every key across all objects, so records that are missing a field simply get an empty cell rather than throwing the columns out of alignment. Arrays inside a record are kept as a JSON string in the cell so no information is silently dropped. You can pick a comma, semicolon, or tab delimiter and download the file directly.

How to use it

  1. Paste your JSON into the input box, or click Load sample to see the expected shape.
  2. Confirm the JSON is valid; if it is not, an inline error shows the parser's message so you can fix it.
  3. Choose a delimiter: comma for a standard .csv, semicolon for locales where the comma is a decimal point, or tab for a .tsv.
  4. Keep the header row on so the first line names the columns, or turn it off if your import expects data only.
  5. Read the row and column counts, then click Copy for the clipboard or Download to save a .csv or .tsv file.

Examples

Convert an API response to a spreadsheet

You fetch a list of users from an API as a JSON array. Paste it in and each user becomes a row, with id, name, and email as columns. A nested profile object turns into profile.bio and profile.country columns, and a user missing an email just gets a blank cell. Download the CSV and open it in Sheets.

Handle an object with a data array

Your JSON is wrapped as { "data": [ … ], "page": 1 }. The converter detects the first array value, treats it as the dataset, and ignores the page wrapper, so you get a clean table of the records inside data without having to unwrap the response by hand first.

Frequently asked questions

What JSON shapes does it accept?
An array of objects is the main case. It also accepts a single object, which becomes a one-row table, and an object whose first array value is the dataset, a common API shape like { data: [...] }. Each top-level object becomes a row and its keys become columns.
How are nested objects handled?
Nested objects are flattened into dotted column names, so { address: { city: 'Leeds' } } becomes a column called address.city. Arrays inside a record are kept as a JSON string in the cell so nothing is lost, which you can split further in your spreadsheet if needed.
What if some records are missing fields?
The converter collects every key seen across all records and uses that as the full column set. A record that lacks a field gets an empty cell in that column, so the table stays rectangular and rows never shift out of alignment with the headers.
Why does a cell have quotes around it?
CSV requires a value to be wrapped in double quotes if it contains the delimiter, a line break, or a quote character, and any internal quotes are doubled. The converter does this automatically so the file parses correctly in Excel and Sheets even when your text contains commas or newlines.

Good to know

CSV looks simple but has real edge cases, and most ad-hoc conversions get them wrong. A value containing a comma, a newline, or a quotation mark must be escaped or the whole table shifts. This converter follows the standard quoting rules, doubling internal quotes and wrapping any risky cell, so the output opens cleanly rather than scattering fields across the wrong columns. If you see unexpected columns in your spreadsheet, it is almost always because a hand-made CSV skipped this escaping.

Choose the delimiter for your locale and tool. The comma is standard in English-speaking regions, but in much of Europe the comma is the decimal separator and spreadsheets there expect a semicolon, so pick that to avoid numbers splitting across columns. Tab-separated output is the safest when your data itself is full of commas. Everything runs in your browser, so a confidential export never leaves your machine; for the reverse direction or to validate the JSON first, pair this with the JSON formatter.

Related tools