JSON to CSV Converter

Convert JSON arrays to CSV format instantly. Choose delimiter (comma or semicolon). Download or copy CSV output.

JSON and CSV are both common data interchange formats, but they serve different purposes. JSON is hierarchical and flexible, ideal for nested data structures and APIs. CSV is flat and tabular, ideal for spreadsheets, database imports, and data analysis tools. Converting between them is a common task when you need to take API data and load it into Excel, Google Sheets, or a database using a CSV import function.

This tool converts a JSON array of objects into a CSV table. Each object in the array becomes one row, and the keys of the objects become the column headers. For example, a JSON array with fields "id", "name", and "email" will produce a CSV with those three columns. The first row of the output is always the header row containing the column names.

You can choose between comma and semicolon delimiters. In many European countries, the decimal separator is a comma, so CSV files use semicolons to avoid ambiguity in numeric values. The tool correctly handles RFC 4180 escaping: values containing the delimiter, double quotes, or newlines are automatically wrapped in double quotes with internal quotes doubled.

After conversion, copy the CSV output directly to your clipboard or download it as a .csv file ready to open in Excel or Google Sheets. All processing runs in your browser — your data is never uploaded to a server.

Example JSON Format:

[
  {"name": "John", "age": 30, "city": "New York"},
  {"name": "Jane", "age": 25, "city": "London"}
]

Input shape

The converter expects an array of flat objects. A valid input looks like [ { "id": 1, "name": "Ada" }, { "id": 2, "name": "Grace" } ]. A single object, an array of arrays, or a stream of line-delimited JSON is not valid input here — convert to the expected shape first, usually with a one-line jq command or a small script.

Handling nested fields

CSV is flat by definition. If a value in your JSON is an object or an array, the converter serializes it as a JSON string inside the cell. That is rarely what you want in a spreadsheet. For deeply nested data, flatten it before converting — for example, replace a nested address object with address.street, address.city, and address.zip columns in the input.

Delimiter and locale

Comma is the North American default. Semicolon is standard in continental Europe, where the comma is already used as a decimal separator. Microsoft Excel picks the delimiter based on the system locale, which is why the same CSV may open in one column in one region and ten columns in another. When in doubt, pick the delimiter that matches the region of the spreadsheet you are loading into, and use a .tsv (tab-delimited) fallback for ambiguous cases.

Escaping rules (RFC 4180)

A cell that contains the delimiter, a double quote, or a newline is wrapped in double quotes, and any internal double quotes are doubled up (" becomes ""). The converter applies these rules automatically, so you can feed in text with commas and quoted phrases without extra escaping.

Byte order mark (BOM)

Excel on Windows sometimes misinterprets UTF-8 CSV files unless they start with a BOM (\uFEFF). If your CSV contains non-ASCII characters (accents, Cyrillic, Chinese), consider prepending a BOM manually or saving as UTF-16 when using the file on Windows. Google Sheets and LibreOffice Calc handle BOM-less UTF-8 correctly.

Frequently Asked Questions