Convert CSV or TSV to JSON objects or arrays. Detects the delimiter, keeps leading zeros in phone numbers and PIN codes, and lists problem rows.
JSON to CSV Converter
Convert a JSON array into a CSV file for Excel or Google Sheets. Nested objects become columns, and formula protection is on by default.
. Large files are not shown in the editor, to keep the page responsive. The whole file is converted.
An array of objects works best. A single object, or an object that contains a list, also works. Files up to 20 MB.
CSV settings
The JSON contains more than one list. Pick the one that holds your records.
Choose semicolon if your Excel uses a comma as the decimal separator.
Adds ' before cells that start with =, +, -, @ or a tab, so spreadsheet apps show them as text instead of running them.
Helps Excel show ₹, Hindi and accented letters correctly. Turn it off for databases and scripts.
The CSV standard. Turn it off for Unix-style LF line endings.
CSV preview
Convert your JSON to see the table here.
No CSV yet
Paste JSON or open a file, then press Convert to CSV. The first 50 rows are previewed here.
Runs entirely in your browser. Your files and text are not uploaded.
How to use JSON to CSV Converter
-
Step 1: Add your JSON
Paste JSON or open a .json file. An array of objects, such as an API response, works best.
-
Step 2: Choose the settings
Pick the delimiter and how lists are written. If the JSON holds several lists, choose the one with your records.
-
Step 3: Convert and download
Press Convert to CSV, check the preview of the first 50 rows, then copy the CSV or download the file.
How the JSON becomes a table
Each record becomes one row and each field becomes a column:
- Rows come from the top-level array. If the JSON is an object that contains arrays, such as
{"data": {"items": [...]}}, the tool picks the array with the most objects in it. You can choose another array, or the whole object as a single row. - Nested objects are flattened with dot notation:
{"address": {"city": "Pune"}}becomes a column calledaddress.city. - Lists inside a record, such as
"tags": ["new", "priority"], are joined into one cell asnew; priority, or kept as JSON text (["new","priority"]) if you need to read them back later. - The header is the union of the keys of all records, in the order they first appear. A record without a field gets an empty cell in that column.
- Values: text is written as it is,
trueandfalsestay as words,nullbecomes an empty cell, and numbers are copied exactly as written in the JSON, so long IDs are not rounded. - An array of arrays is written row by row, without a header.
Quoting and line endings
The CSV follows RFC 4180. A field is wrapped in double quotes when it contains the delimiter, a double quote, a line break, or a space at the start or end, and quotes inside a field are doubled ("Said ""hello"""). Lines end with CRLF by default, as the standard says; switch that off for LF.
Opening the file in Excel
Excel reads CSV files using your computer's regional settings. If everything lands in one column, your Excel probably expects semicolons, so choose the semicolon delimiter and download again. Keep Add a BOM for Excel switched on so that Excel recognises the file as UTF-8 and shows the rupee sign, Hindi text and accented names correctly. Switch it off if a script or database will read the file, because some programs treat the BOM as part of the first column name.
Protection against formula injection
A cell that starts with =, +, - or @ can be run as a formula when the CSV is opened in a spreadsheet app such as Excel or Google Sheets. A value like =HYPERLINK(...) hidden in exported data can then create misleading links or pull in data from the internet when someone opens the file. With protection on, which is the default, the tool adds an apostrophe in front of such cells, and of cells that start with a tab or carriage return, so spreadsheets show them as plain text. Plain numbers such as -42 are left alone. The apostrophe stays visible in the cell, so switch protection off if the CSV is only for a program that does not run formulas.
Privacy
The conversion runs in your browser. Your JSON is not uploaded or stored.
Limitations
- Files can be up to 20 MB. The preview shows the first 50 rows; Copy and Download always include every row.
- Objects inside lists are not spread into separate rows or columns. They are written as JSON text inside the cell.
- Keys that contain dots are not escaped, so a key called
address.cityand a nestedcityfield insideaddressshare one column. - A CSV is plain text. Number formats are decided by the spreadsheet app when it opens the file: Excel, for example, may show long numbers in scientific notation and drop leading zeros, even though the CSV contains them.
- Excel opens at most 1,048,576 rows and 16,384 columns. The tool warns you when the CSV is larger.
Frequently asked questions
Can I open the CSV in Excel?
Yes. Keep “Add a BOM for Excel” on so that non-English characters show correctly. If all the values appear in one column, your Excel expects semicolons: choose the semicolon delimiter and download the file again.
Why do some cells start with an apostrophe?
Those cells begin with =, +, -, @, a tab or a carriage return, which spreadsheet apps can run as formulas. The apostrophe makes them plain text. Switch off “Protect against spreadsheet formulas” if the file is not going to be opened in a spreadsheet.
How are nested objects and arrays handled?
Nested objects become columns with dotted names, such as address.city. Lists of values are joined with “; ” in one cell, or kept as JSON text if you choose that option. Objects inside lists are always written as JSON text.
My records are inside another object. Will it work?
Yes. When the JSON is an object, the tool looks for arrays inside it, picks the one with the most objects and shows a “Rows to convert” list so you can choose a different array or the whole object.
Why do long numbers or leading zeros look wrong in Excel?
The CSV contains them exactly as they are in the JSON, but Excel converts them when it opens the file. To keep them, use Data › From Text/CSV in Excel and set those columns to Text before loading.
Is my data uploaded anywhere?
No. The JSON is converted by JavaScript in your browser. It is not sent to our server or stored.
Related tools
Format, minify and validate JSON in your browser. Errors are shown with the exact line and column, and numbers are kept exactly as written.
Encode text or files to Base64 and decode Base64 back to text or a downloadable file. Supports UTF-8, URL-safe Base64 and data URIs.