Asistente RD

JSON to CSV converter

Convert a JSON array to a CSV table for Excel and back to JSON for your APIs. Pick the delimiter, escape commas and quotes, then copy or download it.

Free · No sign-up · In your browser

Data rows

0

Columns

0

Characters

0

Everything runs in your browser: your data is never sent to any server.

Share on WhatsApp Last reviewed: July 8, 2026

Why convert between JSON and CSV

APIs speak JSON, but spreadsheets speak CSV. The moment you want to eyeball an API response, sort it, share it with a non-developer, or drop it into Excel or Google Sheets, a JSON array is awkward. Going the other way is just as common: someone hands you a spreadsheet and you need clean JSON to feed a script, a database import, or a request body.

This converter does both directions with no setup and no upload. Every byte is processed locally in your browser, so you can convert sensitive rows — customers, amounts, emails — without them ever leaving your machine.

How to use it

  1. Pick a direction at the top: JSON → CSV or CSV → JSON.
  2. Choose the delimiter. A comma is the international default; a semicolon is what a Spanish-configured Excel expects.
  3. Paste your content into the input box. For JSON, use an array of objects; for CSV, always keep the header row on top.
  4. In CSV → JSON mode, toggle “Convert numbers, booleans and null” depending on whether you want real types or plain strings.
  5. Copy the output in one click, or download it as a .csv or .json file.

How the conversion works

Going from JSON to CSV, the tool scans every object and builds the header from the union of all keys. If one object has a field another lacks, the column still appears and the missing cells are left blank. Any value that contains the delimiter, a double quote, or a line break is wrapped in double quotes, and inner quotes are doubled — the RFC 4180 rules. That is what keeps a stray comma from breaking your columns.

Worked example

With this JSON and a comma delimiter:

[
  { "name": "Ann", "city": "New York", "amount": 1500 },
  { "name": "Lou", "city": "Austin, TX", "amount": 980.5 }
]

the output is exactly:

name,city,amount
Ann,New York,1500
Lou,"Austin, TX",980.5

Notice "Austin, TX": it is quoted because it holds a comma. Switch the delimiter to a semicolon and the same cell comes out unquoted (Lou;Austin, TX;980.5), because the comma is no longer the separator.

Types when going back to JSON

Text in the CSVWith conversion onAs text
28number 28"28"
980.5number 980.5"980.5"
trueboolean true"true"
007"007" (leading zero kept)"007"
empty cell""""

Nested objects: the limitation

CSV is a flat grid; a cell cannot hold a whole object. When a JSON field contains another object or an array, the tool flattens it to text, storing its JSON form inside the cell. For instance, { "x": 1 } is written as the string {"x":1}. Convert back and that field stays a string, not a real object. If you need to keep the nested shape, flatten your data yourself first — use address_city instead of address.city.

Frequently asked questions

How do I open the CSV in Excel without everything landing in one column?

The download carries a UTF-8 marker so Excel keeps accents intact. If the whole file lands in column A, your Excel is expecting semicolons: come back, pick the semicolon delimiter, and download again. You can also run Data → Text to Columns inside Excel.

What happens to nested objects and arrays?

They become a text string holding their JSON representation inside the cell. That is a limit of the CSV format itself, not of this tool: a flat table cannot contain sub-tables. Flatten those fields before converting if you want separate columns.

Comma or semicolon as the delimiter?

It depends on where the file will be opened. English-locale systems and virtually all programming tools use the comma. Excel installed in Spanish (and in much of Latin America) treats the semicolon as the list separator, so a comma CSV looks scrambled. If the file is headed for a Spanish Excel, choose the semicolon.

Is my data uploaded anywhere?

No. The conversion runs entirely in your browser with JavaScript. You can go offline and it will keep working.

Related tools