Convert JSON to CSV
Get API responses, app exports and log files out of JSON and into rows and columns. Upload .json, .jsonl or .ndjson files and download a CSV with one line per record.
Data Converter
or drop CSV, TSV, TXT … files here ·
Max 95 MB per file· Up to 20 files· Deleted after 30 minutes
Files are processed on our servers and deleted after 30 minutes.
Character that separates columns in CSV and text files, for both reading and writing. Auto detects it from the input and writes commas.
UTF-8 works for every language. Choose UTF-8 with BOM if Excel on Windows shows garbled accents or Asian characters when opening the CSV.
Excel, ODS and Numbers input: convert the first sheet only, or every sheet (one CSV per sheet in a ZIP, or one JSON key per sheet).
Name of the sheet tab in the new spreadsheet, up to 31 characters.
Array of objects uses column names as keys for every row; array of arrays is more compact and keeps the header as the first array.
Name of the outer element that wraps all rows; each row becomes a <row> inside it.
Used in CREATE TABLE and INSERT statements. Letters, digits and underscores only.
Quoting and column types differ slightly between databases; pick the one you will import into.
Rewrite date cells in one format. ISO (2026-10-18) is safest for databases and code; keep leaves them as they appear in the source.
How to use this tool
- 1
Upload JSON data
Add files holding an array of objects, or JSON Lines with one object per line. Up to 20 files, 95 MB each.
- 2
Check the CSV settings
UTF-8 with BOM is preselected under Text encoding so Excel on Windows reads accents. Set Delimiter to Semicolon if your Excel expects it, or turn on Quote every value for strict importers.
- 3
Convert and download
Press Convert to CSV. The header row lists every key found in the records; open the file or import it wherever CSV is accepted.
JSON to CSV turns a list of records into a table: each object becomes a row, each key becomes a column, and nested fields are spread into columns of their own.
Why convert JSON to CSV
JSON is how web services talk to each other. Order systems, payment providers, analytics APIs and form builders all hand data out as JSON, and NoSQL databases such as MongoDB and Firebase store documents in a JSON-like shape. That is ideal for programs and frustrating for everyone else, because a 5 MB JSON file in a text editor is a wall of braces.
CSV is the opposite trade. It cannot express nesting or types, but every spreadsheet, BI tool, CRM import and database loader reads it. Converting is how an operations manager gets a list of orders into a pivot table, how a data analyst moves an API pull into a SQL table, and how a support lead shares a filtered export with a colleague. When the data starts life as XML instead, XML to CSV does the same flattening for tags.
Nested JSON to CSV: how flattening works
- Flatteningnormalizing · unnesting
- Writing a nested object as extra columns of the same row, named after the path to each value, so {"customer":{"city":"Austin"}} becomes a column customer.city holding Austin.
[{"id":5012,"total":42.9,"paid":true,"customer":{"name":"Ada Okafor","city":"Austin"}},
{"id":5013,"total":18,"paid":false,"customer":{"name":"Lin Wei","city":"Toronto"}}]
id,total,paid,customer.name,customer.city
5012,42.9,true,Ada Okafor,Austin
5013,18,false,Lin Wei,TorontoJSON variants and table outputs
| from ↓ · to → | CSV | TSV | XLSX |
|---|---|---|---|
| JSON | JSON to CSV: yes | JSON to TSV: yes | JSON to XLSX: yes |
| JSONL | JSONL to CSV: yes | JSONL to TSV: yes | JSONL to XLSX: yes |
| NDJSON | NDJSON to CSV: yes | NDJSON to TSV: yes | NDJSON to XLSX: yes |
| YAML | YAML to CSV: yes | YAML to TSV: yes | YAML to XLSX: yes |
| XML | XML to CSV: yes | XML to TSV: yes | XML to XLSX: yes |
Lists inside a record are the one thing a flat row cannot hold neatly. An order with five line items is really two tables: orders and items. If those lists matter, extract the array into its own JSON file and convert that separately, so each line item gets its own row with the order ID beside it.
JSON and CSV format facts
JSON
JavaScript Object Notation
JSON is a lightweight text format for structured data, popularised by Douglas Crockford in the early 2000s and standardised as RFC 8259 and ECMA-404. It represents objects, arrays, strings, numbers, booleans and null with simple, readable syntax. It is the default format for web APIs, configuration files and data exchange between apps in almost every programming language. It has no comments, dates or schemas built in, and large nested files are hard to read without a viewer.
- Compression
- –
- Transparency
- –
- Animation
- –
- Introduced
- 2001 · Douglas Crockford
CSV
Comma-separated values
CSV is a plain-text format for tables in which each line is a row and commas separate the columns. It has been used since the early days of computing and is described in RFC 4180, though many variants use semicolons or tabs and different text encodings. Nearly every spreadsheet, database and analytics tool can import and export it, which makes it the default format for moving data between systems. CSV stores only values, with no formulas, formatting, multiple sheets or data types.
- Compression
- –
- Transparency
- –
- Animation
- –
- Introduced
- –
People convert JSON to CSV when data fetched from an API or an app has to be analyzed, shared or imported by someone who works in spreadsheets, not code.
JSON to CSV conversion FAQ
What JSON structure converts cleanly to CSV?
An array of objects that share most of their keys, like [{"id":1,"name":"Ada"},{"id":2,"name":"Lin"}]. Each object becomes a row and each key a column. A single object at the top with the records inside one property also works, as long as the records themselves are a list.
What if some records have keys that others lack?
The header is the union of all keys, so a field that appears in only some records still gets a column. Records without it leave that cell empty. That is normal for API data, where optional fields are simply omitted.
How are true, false and null written?
CSV has no data types, only text. Booleans are written as the words true and false, numbers as digits, and null as an empty cell. If an importer needs 1 and 0 instead of true and false, replace them in a spreadsheet after converting.
Why does Excel show weird characters instead of accents?
Excel on Windows assumes a regional code page for CSV files unless the file starts with a byte order mark. This page writes UTF-8 with BOM for that reason. Tools on Linux or in data pipelines sometimes prefer plain UTF-8; switch Text encoding for those.
Should I pick CSV or an Excel file for JSON data?
CSV if the next step is an import into another system, a database load or a script. A workbook if people will read and edit the data, because JSON to Excel keeps types and avoids Excel re-guessing columns such as ZIP codes on open.
Can I get the original JSON back from the CSV?
Only the flat version. Arrays and deep nesting were spread into columns or text, and number versus string types are no longer recorded, so a round trip produces flat objects. Keep the source JSON if you will need its original shape.
- JSON to Excel ConverterConvert JSON or JSON Lines into an Excel XLSX sheet: keys become column headers, each record becomes a row. Up to 20 files per batch, no account needed.
- XML to CSV ConverterConvert XML feeds, invoices and system exports to CSV online. Repeating records become rows, child tags become columns. Up to 20 files, 95 MB each.
- JSON to TXT ConverterConvert JSON to a plain text file: one record per line, fields split by tabs or any delimiter you pick. Opens in Notepad, Excel and command-line tools.
- JSON to YAML ConverterConvert JSON to YAML online for Kubernetes, GitHub Actions, Compose and Ansible files. Indented, quote-safe output, 20 files per batch, no account needed.
- Excel to JSON ConverterConvert Excel sheets to JSON online: header row becomes keys, each row an object, dates written as ISO strings. XLSX, XLS, ODS and Numbers accepted.
- CSV to Parquet ConverterConvert CSV to Apache Parquet with typed columns and compression, ready for pandas, DuckDB, Spark, BigQuery or Athena. No Python or Spark setup needed.