Free Online JSON to CSV Converter

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.

JSON input

Conversion options

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.

CSV preview

No rows yet

Convert JSON to see a CSV preview.

What Is JSON to CSV Conversion?

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.

How to Convert JSON to CSV

Step 1: Add JSON

Paste an object or an array of objects, or upload a .json file.

Step 2: Choose options

Pick a comma, semicolon, or tab delimiter, and choose whether the first row names the columns.

Step 3: Convert and preview

Choose Convert to CSV. The preview shows the columns and the first rows.

Step 4: Copy or download

Copy the CSV or download converted-data.csv. The file includes every converted row, not only the preview.

JSON to CSV Examples

Array of objects

[
  {
    "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

Array property

[{"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""]"

Nested JSON Conversion Explained

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.

Common Conversion Errors

Invalid JSON

Trailing commas, comments, and single quotes are rejected. The status line shows the parser message.

Unsupported root

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.

Empty array

An empty array has no records, so no CSV file is created until you add objects.

Frequently Asked Questions

Does this json to csv tool upload my data?

No. Parsing, flattening, preview, copy, and download all run in your browser.

How are commas and quotes handled?

Fields that contain the delimiter, a double quote, or a line break are wrapped in double quotes. Quotes inside a field are doubled.

What does spreadsheet-safe export change?

Nothing, unless you check Spreadsheet-safe export. It is off by default, so the CSV keeps the original cell text.

Where can I inspect the JSON first?

Use the JSON Viewer to open the tree, or the JSON Beautifier to format the text, then come back and convert it.