📊

JSON to CSV Converter

Turn JSON arrays, objects and nested records into clean CSV or TSV with flattening, column controls and spreadsheet-safety options.

Configurable outputPrivate in browserInstant preview

JSON input

0 characters

CSV preview

Preview shows the complete generated text
Your converted data will appear here.
0 rows0 columns0 bytesNo input
🧱

Nested JSON

CSV is flat, while JSON can contain objects and arrays. Flattening converts nested object paths such as address.city into columns. Arrays can stay as JSON text or be joined into one cell.

🛡️

Spreadsheet safety

Cells beginning with formula characters can be interpreted as formulas by spreadsheet software. Protection is enabled by default and prefixes those values with an apostrophe.

🔐

Local processing

Your JSON is parsed and converted in the browser. The input is not uploaded by this converter, making it suitable for ordinary non-secret datasets.

How to create a reliable CSV export

Start with valid JSON containing similarly shaped records. Select a records path when the array is wrapped inside an API response, review the discovered columns, and choose output settings for the application that will open the file.

Which JSON shapes are supported?

You can convert an array of objects, a single object, an array of primitive values, or an array stored at a dot-separated records path such as data.results. Mixed record types are rejected because they produce ambiguous tables.

When should I use TSV or semicolon-delimited output?

TSV is useful when text contains many commas. Semicolon-delimited files are common in locales where commas are decimal separators. Confirm the delimiter expected by the receiving system.

Why do some cells contain JSON text?

When flattening is disabled, nested objects must remain serialized inside a single CSV cell. Nested arrays also remain JSON unless “Join values” is selected.

Will Excel preserve long numbers and dates?

Not always. Spreadsheet software may reformat identifiers, large integers, dates or leading zeros during import. Use its text-import controls when exact representation matters.