JSON to CSV Converter

Runs 100% in your browser

Convert JSON arrays, nested objects, and array properties into clean CSV locally. Flatten dot keys, expand arrays to indexed columns, choose delimiters and quotes, preview rows, and download spreadsheet-ready output without uploading data.

CSV transformation utility

Convert JSON arrays into clean CSV

Flatten nested records, choose your columns, preview the table, and download a standards-friendly CSV without uploading your data.

Local only

Step 1

JSON input

Ready
0 bytesJSON input

Step 2

CSV settings

Auto columns

Step 3

Table preview

Waiting for JSON

A structured table preview will appear after valid JSON is parsed.

Step 4

CSV output

Waiting for input
0 bytesNo output yet

At a glance

Conversion statistics

Rows0
Columns0
Input bytes0
Output bytes0
Nested paths0
Delimiter,

Private by architecture

JSON is parsed and converted with browser-native JavaScript. There is no upload endpoint, no remote conversion API, and no persistent conversion history. Close the page to clear the in-memory session.

Session only

Recent conversions

Recent conversions disappear when this page closes.

Frequently asked questions

A JSON to CSV converter turns structured JSON records into comma-separated rows and columns. An array of objects becomes a table: object keys become column headers and each record becomes one CSV row that can be opened in Excel, Google Sheets, or imported into a database or data pipeline.

Paste a JSON array of objects into the converter. The tool discovers all column keys across every record, escapes commas and quotes, renders a table preview, and creates a downloadable CSV file — all without sending the JSON to a server.

Yes. Use Flatten as dot keys to turn a nested value such as {"profile":{"country":"GB"}} into a column named profile.country. If you want to preserve the original structure inside a single cell, choose Keep objects as JSON instead.

You can keep arrays as JSON text inside one cell, or expand them into indexed columns such as skills[0] and skills[1]. Keeping arrays as JSON is useful for variable-length data, while index expansion works well for fixed-length arrays you want as separate columns.

With Union of all keys, the converter creates a complete column set from every record and leaves a blank cell where a key is missing. Keys from first row limits columns to the first record when you need a fixed schema and want to ignore extra keys in other records.

Yes. A single root object becomes one CSV row. If the root object contains a property whose value is an array, the converter automatically uses that array as the row source and shows the property name in the status panel — for example, property: records.

Yes. Choose comma, tab, semicolon, or pipe as the delimiter. Tab-separated output imports cleanly into spreadsheet apps. Semicolons are common in locales such as France and Germany where commas serve as decimal separators.

The converter quotes any cell that contains the delimiter, a double quote, or a line break, and doubles any embedded quote characters according to the CSV standard. You can also force all cells to be quoted for the most conservative import compatibility.

Enable the UTF-8 BOM option when Excel or another spreadsheet app fails to display non-ASCII characters correctly. The byte-order mark tells the application the file is UTF-8 encoded. Leave it off for systems that expect the CSV to begin directly with the header row.

JSON is parsed entirely in your browser using native JavaScript. The page does not upload your data, call a remote conversion API, write to localStorage, or retain rows after the page closes. Your JSON never leaves your device.

It processes data within the memory available to your browser. Very large datasets may be slow because the table preview and CSV string are held in memory simultaneously. For production-scale exports, use a streaming server-side converter and verify the output before loading it into a database or API.

JSON to CSV flattens structured records into spreadsheet-style rows and columns. CSV to JSON reads rows and headers and reconstructs objects. Use the paired ToolsSonic converters to inspect, transform, and round-trip compatible datasets locally without any server involvement.

An array of flat objects — each object becomes a row and each key a column. The converter flattens reasonable nesting, but deeply irregular structures may need reshaping first.

The column set is the union of all keys; rows without a key get an empty cell, so ragged data still produces a rectangular CSV.

Yes. Download the CSV and open it directly — values containing commas or quotes are escaped per RFC 4180 so columns line up correctly.

Nested values are flattened or serialised so no data is silently dropped. Convert a sample first to confirm the column shape suits your spreadsheet.

Spreadsheets sometimes reformat long numbers and strip leading zeroes on open. Import the CSV with the column typed as text, or wrap ids as strings before converting.

Everything runs locally in your browser with no upload, no account, and no logging. You can confirm in your browser DevTools Network tab that no request carries your data.

What is JSON to CSV Converter?

A JSON to CSV converter transforms structured JSON data into flat, spreadsheet-ready rows and columns. It is one of the most frequently needed operations in data engineering, API development, business analytics, and database work — because JSON is how modern APIs deliver data and CSV is how spreadsheet tools, BI platforms, and data imports consume it.

The basic pattern is simple: an array of JSON objects maps to a CSV table, where each object becomes a row and each key becomes a column header. But real-world JSON is rarely that simple. API responses often contain nested objects, arrays inside objects, root properties that wrap the data array, records with missing or inconsistent keys, and values that contain commas, quotes, and line breaks that must be correctly escaped.

Handling nested objects with dot-key flattening

When a JSON record contains nested objects such as {"profile":{"country":"GB","active":true}}, a naive converter either ignores the nested data or puts the entire object into a single cell as text. ToolsSonic's converter flattens nested objects into dot-key columns: profile.country and profile.active each become their own column. This is the format expected by pandas, R data frames, Elasticsearch bulk imports, and most BI tools. If you prefer to keep the nested JSON intact inside one cell, switch to Keep objects as JSON.

Expanding arrays into indexed columns

Arrays inside JSON records present a choice. Keeping ["math","code"] as JSON text in one cell preserves the data compactly but makes analysis harder. Expanding to indexed columns creates skills[0] and skills[1] as separate columns — useful for fixed-length arrays like coordinates, RGB tuples, or categorical tags.

Root object and property detection

Not every JSON response is a clean root array. Many REST APIs wrap the data array inside a property: {"data":[...],"meta":{...}} or {"records":[...],"total":200}. ToolsSonic automatically detects when a root object contains an array-valued property and uses that array as the row source. The status panel shows property: records so you always know which data was converted.

Column strategy: union vs first-row

When records in a JSON array have different keys — which is common when some fields are optional — Union of all keys creates a complete column set and fills missing values with empty cells. Keys from first row limits columns to the first record's schema, which is faster when you know all records share the same structure.

Delimiter and encoding options

The default comma delimiter works for most imports. Semicolons are standard in continental European locales where commas are used as decimal separators. Tab-delimited output (TSV) imports directly into many databases and data tools. Pipe-delimited output avoids quoting issues when the data itself contains commas, semicolons, and tabs. The optional UTF-8 BOM ensures Excel recognises non-ASCII characters without a manual import wizard step.

Why ToolsSonic's JSON to CSV converter beats the competition

Tools like convertcsv.com, json2csv.com, and similar online converters process your data on their servers and offer limited customisation. ToolsSonic converts JSON entirely in your browser — no upload, no server round-trip, no account required. You get dot-key flattening, array index expansion, root property detection, union and first-row column modes, four delimiters, two quote modes, CRLF/LF line endings, optional UTF-8 BOM, a 50-row scrollable table preview, row/column/byte statistics, session history, and clipboard and download export — all running locally and privately.

Common use cases

  • Converting REST API JSON responses into Excel or Google Sheets
  • Flattening nested JSON records into a database-import CSV
  • Exporting API test fixtures or seed data as CSV files
  • Preparing JSON data for a BI tool, CRM, or analytics platform
  • Creating TSV output for database pipelines or command-line tools

Why use ToolsSonic's JSON to CSV Converter?

ToolsSonic's JSON to CSV Converter supports root arrays, single objects, root property detection, dot-key flattening of nested objects, array index expansion, union and first-row column modes, comma/tab/semicolon/pipe delimiters, minimal and all-cell quoting, CRLF and LF line endings, optional UTF-8 BOM, a 50-row table preview, row/column/byte/nested-path statistics, session history, and copy/download export — all 100% private, no server, no upload.

100% private — runs in your browser Instant — no server round-trip Free forever — no account needed