Skip to content
1001 Tools
sr
Developer tools

JSON to CSV Converter

Paste a JSON array of objects and get CSV you can open in Excel, Google Sheets or LibreOffice. Choose the delimiter to match your locale, and see the row and column count. Everything is processed in your browser — your data never leaves the page.

CSV output

How it works

The converter reads your JSON and builds a header from the union of every object’s keys, in the order they first appear. Each object becomes a row; missing keys are left blank. Values that contain a comma, quote or line break are wrapped in double quotes and internal quotes are doubled, following the RFC 4180 CSV rules that spreadsheets expect.

Nested objects and arrays can’t sit in a single cell, so they’re kept as compact JSON text — you can expand them later if needed. A plain array of values becomes a single “value” column, and an array of arrays is written row-for-row with no header. A single object is treated as one row.

Practical examples

A list of users

Input [{"id":1,"name":"Mila"},{"id":2,"name":"Petar"}] gives a header id,name and two rows. Open it straight in Sheets by pasting or importing the file.

Rows with different keys

If one object has an "email" the others lack, the column still appears in the header and rows without it are left blank — no data is silently dropped.

Semicolon delimiter for Excel in Serbia

Excel set to a Serbian locale expects semicolons, not commas. Switch the delimiter to “;” and the file opens into columns without a text-import wizard.

Frequently asked questions

What JSON shape does it accept?

An array of objects works best — each object is a row. It also handles a single object (one row), an array of primitives (a single “value” column), and an array of arrays (written row-for-row). Mixed arrays that combine objects and non-objects are rejected.

Which delimiter should I choose?

Comma is the international default. Choose semicolon if your Excel uses a European locale (including Serbian), where comma is the decimal separator and semicolon separates columns. Tab is handy for pasting directly into a spreadsheet.

How are commas and quotes inside values handled?

Any value containing the delimiter, a double quote or a line break is wrapped in double quotes, and quotes inside it are doubled — the standard CSV escaping every spreadsheet understands. Plain values are left unquoted.

What happens to nested objects or arrays?

They’re written as compact JSON inside the cell (for example {"a":1} or [1,2]). CSV has no concept of nesting, so this keeps the data intact rather than flattening or losing it.

Why is a column blank for some rows?

Because that object didn’t have that key. The header is the union of all keys, so every field gets a column and rows that lack it are simply empty — the columns stay aligned.

Does it keep the order of my keys?

Yes. Columns follow the order keys first appear across the objects, so the first object’s fields lead and any new fields from later objects are appended on the right.

Is my data uploaded anywhere?

No. The conversion runs entirely in your browser with JavaScript. Nothing is sent to a server, so it’s safe for private or internal data.

How do I get an actual .csv file?

Copy the output and paste it into a new file saved with a .csv extension, or into a blank spreadsheet. Because it’s standard CSV text, any editor or spreadsheet app will read it.

Related tools