JSON ⇄ CSV Converter
Convert a JSON array of flat objects into CSV rows, or parse CSV back into JSON, for files up to 200MB.
Or convert a file directly — supports files up to 200MB
Drag & drop a file here, or click to browse
Processed in the background, so the page stays responsive even for huge files
How to use this tool
Choose JSON → CSV and paste an array of objects, or CSV → JSON and paste a table with a header row. The output follows your typing. For a large file, use the drop box under the editor: it converts in the background, up to 200 MB, and downloads the result without loading it into the page. When pasted CSV has a row with more cells than the header, the error names that data row, counting the first row under the header as 1.
Worked example: two customer records
[
{ "id": "004102", "name": "Asha Rao", "phone": "+919876543210",
"note": null, "tags": ["vip"], "total": 1499.5 },
{ "id": "004103", "name": "Ravi, Jr.", "phone": "+919812345678",
"coupon": "DIWALI10", "total": "=SUM(A1:A9)" }
]becomes
id,name,phone,note,tags,total,coupon 004102,Asha Rao,+919876543210,,"[""vip""]",1499.5, 004103,"Ravi, Jr.",+919812345678,,,=SUM(A1:A9),DIWALI10
couponexists only on the second record and still gets a column, at the end, where it was first seen.- "Ravi, Jr." is quoted because of its comma, and the array is written as JSON text with its quotes doubled.
nulland a missing key both become an empty cell, so the CSV can't tell them apart.
Converting that CSV back to JSON gives "note": "" rather than null, and "tags": "[\"vip\"]": a string containing JSON, not an array. The IDs and phone numbers keep their zeros and plus signs.
Before opening the CSV in a spreadsheet
A value that starts with =, +, - or @ is written as it is, and Excel or Google Sheets will treat it as a formula. In the example, =SUM(A1:A9) shows up as a calculated number, not as text. If the JSON came from user input, such as a signup form or a support ticket, check those columns first, because a crafted formula can pull in data from other cells or open links. OWASP calls this CSV injection, and it applies to any CSV export, not just this one. The leading + is also why Excel shows +919876543210 as a number without its plus sign; import the file with the phone column set to Text if you need it intact.
If your records contain nested objects that you want as separate columns, such as address.city, use the Nested JSON ⇄ CSV (Flatten) converter instead.
Frequently Asked Questions
Which delimiter, quoting and line endings does the CSV use?
Commas between fields and a Windows-style line ending (CR LF) after each row. A field that contains a comma, a double quote or a line break is wrapped in double quotes, with any quote inside it doubled. Going the other way, the delimiter is detected automatically, so semicolon-, tab- and pipe-separated files convert without a setting.
What if my JSON objects have different keys?
The CSV gets one column for every key that appears in any object, in the order each key is first seen — so a field that only exists on the 500th record still gets its own column. Objects that lack a key get an empty cell there. Going back from CSV to JSON, those empty cells come back as empty strings rather than missing keys.
Does CSV → JSON guess data types, or is everything a string?
Only in two cases. A cell that is a plain number (like 42, -2.5 or 0.75, with no leading zero and at most 15 significant digits) becomes a JSON number, and true or false in any capitalisation becomes a boolean. Everything else stays the exact text from the file: 004102 keeps its zeros, +919876543210 keeps its plus sign, 1,200 keeps its comma, and a 20-digit order ID is not rounded. An empty cell becomes an empty string.
Related Tools
Related Blog Posts
How to Convert JSON to Excel, CSV, XML and YAML (and Back)
What actually happens to your data when JSON becomes a spreadsheet, XML, or YAML: missing keys, nested values, leading zeros, and the XML array problem, with real converter output.
Read moreHow to Flatten Nested JSON and Convert JSONL Files
How dot-notation flattening turns nested objects and arrays into spreadsheet columns, what survives the trip back, and how JSON Lines differs from a normal JSON file.
Read moreConverting CSV and XML to Excel Without Losing Data
Why double-clicking a CSV mangles PIN codes, long IDs and ₹ signs, what a careful CSV-to-Excel conversion does instead, and how XML records map to spreadsheet columns.
Read more