Convert JSON to CSV
Paste JSON or load it from a file to convert an object or an array of objects into CSV for a spreadsheet. Check the rows, columns, and values, then copy the CSV or save it as a UTF-8 CSV file with a BOM.
What you can do
Turn a JSON list into table data
Convert an array of objects into CSV with 1 row per object. A single object can also be converted into 1 row.
Align field names as columns
Columns are created in the order field names first appear. Fields missing from a row and null values become blank cells.
Copy or save for a spreadsheet
Copy the CSV or save a UTF-8 file with a BOM. Choose a comma, semicolon or tab as the delimiter.
How to use
Enter JSON
Paste JSON or open a file. You can also try conversion using Fill with sample.
Convert to CSV
Usually, you can use the default settings. Open advanced settings to change the delimiter or how formula-like strings are handled.
Review and obtain the table
Check the rows, columns and values, then copy or save the CSV. Open the source text view to inspect CSV quotation marks and other details.
Useful when
Review a JSON list in a spreadsheet
Use this when you want to sort or review data received as JSON, such as a product list, in spreadsheet software.
Hand over data as a table
Use this when you want to deliver a JSON array of objects in a form that software supporting CSV can import.
How JSON becomes CSV rows and columns
Field names become columns; objects become rows
Each object in the array is treated as 1 row. Field names are collected from all rows, and columns are arranged in the order they first appear in the input.
Handling missing values and nesting
Missing fields and null are blank. Nested arrays and objects remain as JSON in a single cell and are not expanded into separate columns.
Delimiters and quotation marks
All fields are enclosed in double quotes, and quotation marks within cells are doubled. Line breaks within values are preserved, and CSV lines end with CRLF.
Frequently asked questions
Do nested objects become separate columns?
No. Nested objects and arrays remain as their original JSON in a single cell. This feature does not automatically expand deep hierarchies into columns.
What if field names differ between rows?
Field names used across all rows become columns. Missing fields and null are blank in that row. Columns appear in the order their field names first occur.
What does protecting formula-like strings mean?
An apostrophe is added before strings starting with =, +, -, @ or similar characters to prevent spreadsheets from interpreting them as formulas. Turn this OFF in advanced settings only when you need the original strings.
Will large integer values change?
The original number representation is preserved during conversion. However, the spreadsheet software you import into may round numbers. Specify columns containing numbers or IDs as text in the importing software.
Input and results
- Input
- 1 UTF-8 JSON input. Up to 1 MB (1,000,000 bytes) for both pasted text and files.
- Conversion
- An object with fields, or an array containing 1 or more objects. Output is limited to 100,000 cells.
- Output
- CSV with column names. Copy provides the CSV text; files are saved in UTF-8 with a BOM.