Step 1: Add JSON
Paste an object or an array of objects, or upload a .json file.
Paste JSON or upload a .json file, then convert JSON to CSV in your browser. Nested objects become dotted columns, and the file never leaves this page.
Download CSV saves converted-data.csv as UTF-8 with a leading byte-order mark. Copy CSV does not add that mark. Spreadsheet-safe export adds a leading apostrophe to cells that start with =, +, -, @, a tab, or a carriage return. The preview shows the original value. The apostrophe appears in the generated CSV text. Leave the option off when you want the original values unchanged. The delimiter choice is separate and stays in effect either way.
No rows yet
Convert JSON to see a CSV preview.
JSON to CSV conversion turns structured JSON into rows and columns that a spreadsheet can open. A json to csv converter reads each object as one record and each property as a column. You can convert json to csv online on this page without sending the text to a server.
Paste an object or an array of objects, or upload a .json file.
Pick a comma, semicolon, or tab delimiter, and choose whether the first row names the columns.
Choose Convert to CSV. The preview shows the columns and the first rows.
Copy the CSV or download converted-data.csv. The file includes every converted row, not only the preview.
[
{
"name": "Ali",
"age": 30,
"address": { "city": "Karachi", "country": "Pakistan" }
}
]
The converter flattens address into dotted columns:
name,age,address.city,address.country
Ali,30,Karachi,Pakistan
[{"name":"Ali","tags":["design","json"]}]
The CSV preview displays ["design","json"] in the tags cell. The downloaded CSV quotes this field because the JSON text contains commas and quotation marks. The array remains in one CSV cell. It does not create additional CSV rows.
name,tags
Ali,"[""design"",""json""]"
Objects inside objects are walked until a plain value is found. The column name joins each key with a dot, so user.name and user.city stay separate. If a property is missing from one record, that cell is left blank. A JSON null stays visible as the text null, so it is not confused with a missing property.
An array inside an object is written as compact JSON in one cell. That keeps every item instead of dropping the list or inventing extra rows. A top-level array is converted only when every item is an object.
Trailing commas, comments, and single quotes are rejected. The status line shows the parser message.
A top-level string, number, boolean, or null is rejected. An array is accepted only when every element is an object, so an array of strings is rejected. An empty object has no properties, so it produces no CSV columns. The status message identifies the error. The converter does not rewrite invalid or unsupported input.
An empty array has no records, so no CSV file is created until you add objects.
No. Parsing, flattening, preview, copy, and download all run in your browser.
Fields that contain the delimiter, a double quote, or a line break are wrapped in double quotes. Quotes inside a field are doubled.
Nothing, unless you check Spreadsheet-safe export. It is off by default, so the CSV keeps the original cell text.
Use the JSON Viewer to open the tree, or the JSON Beautifier to format the text, then come back and convert it.