JSON to CSV Converter (and CSV to JSON)

Turn a JSON array into a spreadsheet-ready CSV or paste CSV and get clean JSON back — quoted fields, commas and line breaks handled properly.

Direction

Fast, easy and free — your answer appears as you type, and whatever you enter stays on your device.

Paste a JSON array and get spreadsheet-ready CSV, or paste CSV and get clean JSON objects back. Quoted fields, embedded commas and line breaks inside values are handled properly — the cases where naive converters silently corrupt data.

How to use it

  1. Pick the directionJSON to CSV for spreadsheets; CSV to JSON for code and APIs.
  2. Paste the dataFor CSV output bound for Excel in Europe, switch the delimiter to semicolon.
  3. Check the summary, copyRows × columns confirms the shape before the data goes anywhere important.

The bridge between code and spreadsheet

JSON is how systems exchange lists; spreadsheets are how humans inspect them. The gap between the two is crossed constantly — an API export that finance wants as a sheet, a colleague's spreadsheet that a script needs as objects — and it is crossed badly constantly, because CSV looks simple enough to hand-roll. The corner cases are where data dies: a customer named "Smith, John", a product description with a line break, a note containing quotes.

This converter implements the actual CSV rules in both directions, so those fields survive intact. The rows-and-columns summary above the result is the quick sanity check: if 500 objects became 512 rows, something in the data needed quoting that the source never applied.

Columns from ragged data

Real JSON arrays are ragged — later objects carry fields early ones lack. Taking the columns from the first object, as quick scripts do, silently discards every field it did not have. Here the header is the union of all keys in first-seen order: nothing is dropped, missing values become empty cells, and the column order still reads naturally. It is the difference between a converter for examples and one for data.

Exports never leave your device — no upload, no logging, offline once loaded.

Questions people ask

What JSON shape does it expect?

An array of objects — [{...},{...}] — which is what APIs return for lists. Each object becomes a row; the columns are the union of every key seen, in first-appearance order, so objects with missing fields still line up correctly with blanks.

Why does Excel put all my CSV in one column?

Excel in most of Europe expects semicolons, because the comma is the local decimal separator. Switch this tool's delimiter to semicolon and the same file opens into columns. This single setting explains the majority of 'broken' CSV files.

How are commas and quotes inside values handled?

By the CSV standard: any field containing the delimiter, a quote or a line break is wrapped in quotes, and quotes inside double up. Reading direction honours the same rules — a quoted field can contain commas and even line breaks. Converters that just split on commas destroy exactly these fields.

What happens to nested objects?

A cell cannot hold a table, so nested structures are stored as their JSON text in the cell — visible and recoverable rather than silently dropped. If you need nesting flattened into columns like address.city, flatten before converting; that transformation is opinionated enough to deserve your explicit choice.

Are numbers and types preserved round-trip?

CSV has no types — everything becomes text, and converting back yields strings. 42 survives as "42". For spreadsheet work this is irrelevant (Excel re-detects numbers); for code, cast after parsing. This is a property of the CSV format, not of any converter.

Is my data uploaded?

No — conversion runs on your device, which matters because exported data is usually customer data.