Data Converter

JSON to CSV Converter Free

Convert JSON arrays to clean CSV files online for free. Paste your JSON, auto-extract column headers from object keys, choose delimiter, preview your data, and download. Handles nested objects, arrays, and missing fields. Runs entirely in your browser — data never uploaded.

Runs in browser Data never uploaded Instant conversion Data preview

JSON Input

Pro — batch JSON files, deep flatten, custom column order, scheduled exports, API

API access · Priority queue · Team workspace

Upgrade — $19/mo

How It Works

STEP 1

Paste Your JSON

Paste any JSON array of objects into the input field. Each object in the array becomes one CSV row. Click Sample JSON to load a realistic employee dataset and explore how the converter handles nested addresses, array fields, and missing values before using your own data. Objects at any depth of nesting are supported.

STEP 2

Configure & Preview

Choose delimiter (comma, semicolon, tab, or pipe), how to handle nested objects (stringify to a JSON string or flatten to dot-notation columns), and whether to include a header row. Click Preview to see the first 10 rows in a formatted table. Verify column alignment before downloading so you catch any structural surprises early.

STEP 3

Download or Copy CSV

Click Download CSV to save the file instantly — no server round-trip. Or use Copy CSV to paste the output directly into another tool. Column headers are auto-extracted from all unique keys across every object in the array, so even sparse or inconsistent JSON with missing fields produces a complete, aligned CSV with empty cells where values are absent.

JSON to CSV Features

Professional JSON flattening and export built entirely in your browser

Auto Header Extraction

Column headers are automatically extracted by scanning all keys across every object in the JSON array — not just the first object. This means sparse JSON where different rows have different keys still produces a complete, aligned CSV. Missing values are represented as empty cells, not errors, so the file is always well-formed.

Nested Object Handling

Choose how nested objects are exported. Stringify mode converts {"address":{"city":"NYC"}} to a JSON string in that cell — safe and lossless. Flatten mode expands it to a new column address.city with the value NYC — ideal when you need the data in separate columns for analysis or database import.

Flexible Delimiters

Export as comma-separated (universal default), semicolon-separated (required for Excel in European locales where the decimal separator is a comma), tab-separated (compatible with databases, BI tools, and most ETL pipelines), or pipe-separated (used by legacy systems where data often contains commas). Pick the delimiter your downstream tool expects.

RFC 4180 Quoting

Fields containing the delimiter character, double-quote characters, or newlines are automatically wrapped in double-quotes per the RFC 4180 CSV standard. Embedded quotes are escaped by doubling them. Use "Quote all fields" to wrap every value regardless of content — some legacy parsers and database import tools require fully quoted CSV to handle edge cases reliably.

Live Data Preview

Before downloading, preview up to 10 rows of parsed data in a formatted HTML table. Column headers are highlighted in orange. The preview reflects the exact delimiter and quoting options you have selected, showing how each cell will appear in the final CSV. The stats row displays total column count and full row count for verification.

100% Private

The entire conversion runs in your browser using JavaScript — no JSON data is ever uploaded, transmitted, or stored on any server. This makes it completely safe for converting API responses with authentication tokens, database query results containing PII, internal configuration data, financial records, and any other JSON payload that must not leave your device or network.

Free vs Pro

Feature Free Pro
JSON input sizeUnlimitedUnlimited
Nested flatten depth1 levelUnlimited depth
Custom column order
Batch JSON file convert
Scheduled auto-export
REST API access

Frequently Asked Questions

Yes — CSV is a flat, tabular format, so the input must be a JSON array where each element is an object (a row). A single top-level object, nested arrays, or primitives cannot be directly mapped to CSV rows. If your JSON is a wrapped object like {"data":[...]}, copy the inner array and paste that instead. If you have a single object, wrap it in an array: [{"key":"value"}].

Column headers are built by scanning every object in the array and collecting all unique keys — not just from the first row. If an object is missing a key that other objects have, that cell is left empty. This ensures the CSV is always correctly aligned even when your JSON data is sparse or inconsistent, which is common with API responses and NoSQL database exports.

Arrays inside objects (for example, a tags field that contains ["admin","editor"]) are converted to a JSON string in that cell — ["admin","editor"] — regardless of the nested object mode selected. This is because there is no standard way to flatten an inner array into flat CSV columns without knowing how many elements it might contain. If you need each tag in its own column, pre-process your JSON to extract those fields before converting.

Use comma for English-language Excel (US, UK, Australia, Canada). Use semicolon if your Excel uses a European locale (Germany, France, Italy, Spain, etc.) — in these locales the decimal separator is a comma, so Excel expects semicolons as the CSV delimiter. If Excel opens your CSV as one long column, switch to the semicolon delimiter and re-download. Alternatively, use the CSV to Excel tool to convert directly to .xlsx and skip the delimiter issue entirely.

Stringify mode converts nested objects to a JSON string in a single column — {"city":"NYC","zip":"10001"} stays as one cell. This is lossless and easy to reverse. Flatten mode expands each nested key into its own column using dot notation — address.city and address.zip become separate columns. Flatten is better for database import, SQL analysis, or Excel pivot tables where you need each value in its own cell.

No — the entire conversion runs in your browser using JavaScript. Your JSON is parsed locally by JSON.parse() and the CSV is constructed in memory and downloaded directly to your device. No data is transmitted, logged, or stored at any point. This makes it safe for API responses containing authentication tokens, database records with personal information, financial transaction data, and any other sensitive JSON that should never leave your device.