JSON to CSV Converter

Turn JSON into a CSV for Excel or Google Sheets, or turn a CSV back into JSON. Nested objects are flattened for you.

100% Free Private & Secure Instant Conversion

How to Convert JSON to CSV

Three steps, no signup

1

Paste or Upload

Paste JSON or CSV into the left box, upload a .json or .csv file, or drop one onto it.

2

Check the Result

The output updates as you type. Pick a delimiter and choose how nested objects or numbers are handled.

3

Copy or Download

Copy the output, or download a .csv with a UTF-8 BOM so Excel shows accents correctly.

JSON to CSV and CSV to JSON: Moving Data Between APIs and Spreadsheets

This converter turns JSON into CSV and CSV into JSON, in either direction, as you type. Paste your data, upload a file or drop one onto the input box, then copy or download the result. Everything runs in your browser, so nothing you paste is uploaded or stored.

What JSON and CSV Are

JSON (JavaScript Object Notation) is a text format for structured data: objects with named keys, arrays, strings, numbers, booleans and null. Most web APIs return it. CSV (comma-separated values) is a plain table with one record per line and one value per column, usually with a first line that names the columns. Spreadsheets, databases and reporting tools all read it. RFC 4180 describes the common rules, including how to quote values that contain commas, quotes or line breaks.

When to Convert

JSON to CSV accepts an array of objects (one row per object), a single object (one row), an array of arrays, or an array of plain values (one column called value). Columns are the union of all keys in the order they first appear, so records with missing keys get empty cells.

How Nested Objects Are Flattened

CSV has no nesting, so a nested object has to become extra columns or text. With Flatten nested objects on, each nested key is joined to its parent with a dot. Arrays stay as JSON text in a single cell.

{"id": 1, "name": "Ana", "address": {"city": "Lisbon", "zip": "1000"}, "tags": ["admin", "beta"]}
id,name,address.city,address.zip,tags
1,Ana,Lisbon,1000,"[""admin"",""beta""]"

Turn the option off and the whole address object is written as JSON text in one column. The reverse direction does not rebuild nested objects: address.city stays a flat key in the JSON you get back.

Opening the CSV in Excel

Excel guesses the encoding of a CSV file, and without a hint it often misreads accents and non-Latin characters. The download button adds a UTF-8 byte order mark (BOM) so Excel reads them correctly. Copying the text and saving it yourself does not include the BOM.

Some European locales use a comma as the decimal separator, and Excel there expects semicolons between columns. If your data lands in a single column, choose Semicolon in the delimiter list and convert again. Google Sheets usually detects the delimiter by itself.

JSON vs CSV

FeatureJSONCSV
StructureNested objects and arraysFlat rows and columns
Data typesStrings, numbers, booleans, nullText only
Typical useAPIs, config files, codeSpreadsheets, imports, reports
File sizeLarger, repeats key namesSmaller, header written once

Reading CSV Correctly

The CSV parser follows RFC 4180. It handles quoted fields, doubled quotes ("") for a literal quote, delimiters and line breaks inside quotes, and both LF and CRLF line endings. A leading BOM is removed. The first row is the header, blank header cells become column_1, column_2 and so on, and short rows are padded with empty strings.

Frequently Asked Questions

Common questions about converting JSON and CSV

Paste your JSON into the left box with JSON → CSV selected. An array of objects becomes one row per object, with the union of all keys as columns. Copy the result or download it as a .csv file.

Switch to CSV → JSON and paste your CSV. The first row is used as the header, and each following row becomes an object. Quoted fields, commas and line breaks inside quotes are handled as RFC 4180 describes.

With Flatten nested objects on, a nested object becomes dot-separated columns, so address.city holds the city. Arrays and empty objects are written into the cell as JSON text. With the option off, every nested value is written as JSON text.

Download the file rather than copying it. The download starts with a UTF-8 byte order mark, so Excel shows accents and non-Latin characters correctly. If everything lands in one column, your Excel expects semicolons, so choose Semicolon and convert again.

No. The conversion runs in your browser with JavaScript. Your JSON and CSV are never sent to a server, and files you upload are only read locally.

With Detect numbers and booleans on, values like 42, -1.5 and 1e3 become numbers, true and false become booleans, and null becomes null. Values with leading zeros such as 007 and empty cells stay strings. Turn the option off to keep every value as a string.

More Free Image & Dev Tools

Convert images, data and code in your browser. All free, all private, no signup.

Browse All Tools