📋 JSON to CSV Converter
Paste a JSON array of objects and get spreadsheet-ready CSV, headers from the union of all keys, quoting handled correctly.
2 records, 3 columns
How the json to csv converter works
The top-level JSON must be an array. For arrays of objects, the header row is the union of every key that appears in any record (missing values become empty cells); for arrays of arrays, rows convert directly. Values containing the delimiter, quotes or newlines are wrapped and escaped per RFC 4180, and nested objects/arrays are embedded as JSON strings rather than silently flattened. Escaping is mechanical: a field that contains the delimiter, a double quote or a line break is surrounded by double quotes, and any double quote already inside it is doubled ("" represents one literal quote). So the object {"name": "Doe, Jane"} becomes the CSV cell "Doe, Jane", one field, not two, which re-imports cleanly.
Choosing the semicolon delimiter makes files that open correctly in Excel on European locale systems, the mirror image of the usual import problem. For a quick visual check before download, the CSV-to-Markdown tool renders the same data as a readable table.
Frequently asked questions
Why do I get an error about a JSON array?
CSV is tabular, so the input must be a list: [{...}, {...}] or [[...], [...]]. A single object can be wrapped in brackets to convert as one row.
What happens to nested objects?
They are embedded as JSON strings in their cell, lossless and reversible. True flattening (address.city → its own column) changes the data shape, so it is deliberate, not automatic.
My records have different keys, what happens?
The header row is the union of all keys; records missing a key get an empty cell. Order follows first appearance.
How do I open the result in Excel without breaking accents?
Download the file rather than copy-pasting (the file route preserves UTF-8), and on European-locale Excel choose the semicolon delimiter.
Can you show a worked example?
The input [{"id":1,"name":"Ada"},{"id":2,"city":"Rome"}] has the key union id, name, city, so the output is three columns: the header line id,name,city, then 1,Ada, (empty city) and 2,,Rome (empty name). Missing keys become empty cells, never the word "undefined".
In what order do the columns appear?
By first appearance across the records, scanning top to bottom. The first object fixes the initial column order; any key seen only in a later record is appended to the right. Reorder the source objects if you need a specific layout.
Is my data uploaded?
No, conversion is local, unlimited and works offline.