JSON to CSV Converter

Quick answer: JSON to CSV Converter is a free online tool: flatten JSON arrays into spreadsheet-ready CSV — nested objects become dotted columns, values are quoted safely. Custom delimiters supported. It works instantly with no signup or download — everything runs privately in your browser.

Flatten JSON arrays into spreadsheet-ready CSV — nested objects become dotted columns, values are quoted safely. Custom delimiters supported. Free, no signup, local.

What is the JSON to CSV Converter?

APIs speak JSON; spreadsheets speak CSV. This JSON to CSV converter turns an array of JSON objects into a clean table: object keys become the header row, each object becomes a data row, and the result opens directly in Excel, Google Sheets, or any data tool.

Real API responses are nested, so the converter flattens one level: {“address”: {“city”: “London”}} becomes a column named address.city. Arrays and deeper structures are serialized as compact JSON strings inside their cell, so no data is silently dropped. Values containing the delimiter, quotes, or line breaks are quoted and escaped per CSV rules.

Choose comma, semicolon, tab, or pipe delimiters to match your locale or target system. A single JSON object is treated as a one-row table automatically. As with every tool here, conversion runs entirely in your browser — no signup, no upload.

Before sending CSV to colleagues, consider the delimiter question: comma is universal, but if your data is full of commas — addresses, descriptions — every field gets quoted and some parsers stumble. Pipe or tab delimiters sidestep the issue entirely. Pick the delimiter when you convert, and note it in the email so the recipient imports with the right setting.

How to use the JSON to CSV Converter

  1. Paste a JSON array of objects (a single object works too — it becomes one row).
  2. Pick the delimiter your spreadsheet or system expects.
  3. Click Convert to CSV to flatten the data into a table.
  4. Copy the CSV or download it as a .csv file.
  5. Open it in Excel or Google Sheets — nested fields appear as dotted column names.

JSON to CSV Converter use cases

Analyzing API responses in spreadsheets

Pull a JSON list from an API, convert it here, and pivot, filter, and chart it in Excel — no scripting required to bridge the formats.

Sharing data with non-developers

Stakeholders live in spreadsheets. Converting your JSON export to CSV gives them sortable, filterable data without teaching anyone JSON.

Importing into legacy systems

Older CRMs, accounting tools, and marketing platforms import CSV but not JSON. This conversion is the standard handoff step.

Auditing nested payloads

Flattening one level with dotted column names (address.city) makes nested API data scannable in a grid, surfacing anomalies faster than reading raw JSON.

Tips

  • Nested objects become dotted columns (address.city) — flatten deeper structures in code if you need more levels.
  • Arrays inside objects are stored as JSON strings in their cell so the data is preserved.
  • Use semicolon delimiter for European Excel versions that expect it.
  • Missing keys in some objects produce empty cells — normalize your data first for the tidiest sheet.

Frequently asked questions

How is nesting handled?
One level of nesting is flattened with dotted key names — {"address": {"city": "X"}} becomes an address.city column. Deeper structures and arrays are serialized as compact JSON text inside the cell, so nothing is lost. If you need deeper flattening, preprocess with a script first — one level covers the vast majority of API responses cleanly.
What if objects have different keys?
The header is the union of all keys across every object, in first-seen order. Objects missing a key get an empty cell in that column. This union approach means no data is dropped even when your API returns slightly different shapes per record.
Are values with commas or quotes handled?
Yes. Any value containing the delimiter, a double quote, or a line break is wrapped in quotes with internal quotes doubled, following standard CSV rules that Excel and Sheets understand. The quoting follows RFC 4180 conventions, which is why the output opens correctly in Excel, Sheets, and LibreOffice alike.
Can I convert a single JSON object?
Yes — it is treated as a one-row table with the object's keys as the header row. This is handy for turning one API response into a quick spreadsheet row for inspection or sharing. It is a quick way to sanity-check an API response shape in spreadsheet form.
Which delimiter should I choose?
Comma is the universal default. Pick semicolon for European Excel locales, tab for TSV workflows, or pipe when your data itself contains many commas. When in doubt, export with comma and let the recipient's spreadsheet auto-detect — it works in the overwhelming majority of cases.
Is my JSON uploaded anywhere?
No. Conversion happens entirely in your browser. API responses with sensitive data never leave your device, and there is no signup. API responses often contain customer data, so keeping the conversion entirely in-browser is a deliberate privacy choice. No accounts, no logs, no exceptions — the conversion is purely local.
Why do numbers sometimes open as dates in Excel?
That is Excel's auto-formatting, not the converter's doing — values like 01-02 become dates on import. Format those columns as Text in Excel to preserve them. Alternatively, import via Data, From Text/CSV where you can declare column types explicitly before Excel guesses.
How do I open the result in Google Sheets?
Download the .csv file, then in Sheets use File, Import, Upload and select it. If you used a non-comma delimiter, choose Custom in the separator options and enter it — Sheets will split the columns correctly. Excel desktop users can use Data, From Text/CSV with the same delimiter setting for an equally clean import.
Can I control the column order?
Columns follow first-seen key order across your objects. To enforce an order, reshape your JSON first so keys appear in the sequence you want, then convert. Most JSON serializers preserve insertion order, so constructing objects in your preferred order usually just works.