JSON to CSV Converter
Take an array of JSON objects and produce a CSV file with proper headers, escaping and delimiter handling.
Your data stays on your device
Input — JSON
- characters
- 0
- lines
- 0
- size
- 0 B
Output — CSV
- characters
- 0
- lines
- 0
- size
- 0 B
Options
Needed for Excel to open non-ASCII text correctly.
About this tool
CSV is flat and JSON is not, so the interesting part of this conversion is deciding what the columns are. The converter scans every object in the array, collects the union of all keys, and produces one column per key — so records missing a field still line up correctly.
Nested objects are flattened into dotted column names such as address.city. Arrays can either be joined into a single cell or expanded into indexed columns, depending on what your downstream spreadsheet needs.
How to use this tool
- Paste a JSON array of objects, or upload a .json file.
- Choose the delimiter: comma, semicolon, tab or pipe.
- Decide how nested objects and arrays should be flattened.
- Press Convert, then download the .csv and open it in your spreadsheet application.
Key features
- Column set derived from the union of keys across all records
- Comma, semicolon, tab and pipe delimiters
- Dotted-path flattening for nested objects
- Arrays joined into one cell or expanded into indexed columns
- RFC 4180 quoting for values containing delimiters, quotes or newlines
- Optional UTF-8 BOM so Excel opens non-ASCII text correctly
Example
Input — JSON
[{"id":1,"user":{"name":"Ada"}},{"id":2,"user":{"name":"Grace"}}]Output — CSV
id,user.name
1,Ada
2,GraceGood to know
- The input must be an array of objects, or an object containing one. A bare scalar or a deeply irregular structure has no meaningful table representation.
- Records with wildly different shapes produce many sparse columns; that is a property of the data, not a conversion error.
- Type information is lost. Everything in a CSV file is text, so consumers must re-infer numbers and booleans.
Frequently asked questions
Why does Excel show my Korean or Japanese text as garbage?
Excel assumes a legacy encoding unless the file begins with a UTF-8 byte order mark. Enable the BOM option and the file will open correctly.
How are nested objects handled?
They are flattened with a dot separator, so {"address":{"city":"Seoul"}} becomes a column named address.city. Depth is unlimited.
Which delimiter should I choose?
Comma is standard. Choose semicolon if your spreadsheet locale uses the comma as a decimal separator, which is common across much of Europe.
What if a value contains the delimiter?
It is wrapped in double quotes, and any embedded quotes are doubled, following RFC 4180. The output stays parseable regardless of content.
Your data stays on your device
Your data is processed locally in your browser and is not uploaded to our server. This page keeps working after you go offline, because there is nothing to send.