JSON to CSV Converter.

Convert a JSON array of objects into clean CSV in one click. Pick your delimiter, choose how nested arrays expand, flatten objects to columns, and select exactly which fields to export — all in your browser.

No signup · No uploads · No file-size cap

CSV output

// Paste JSON and press “Convert to CSV”.

Convert JSON to CSV online — free and private

A JSON to CSV converter turns structured JSON — most often a JSON array of objects — into comma-separated rows you can open in Excel, Google Sheets, or any data tool. Paste your JSON above, press Convert to CSV, and the tool flattens each record into a row with a header built from your keys. Because the whole conversion runs client-side, you can convert JSON to CSV online without ever uploading sensitive data to a server.

How to convert JSON to CSV in three steps

  1. Paste your JSON into the input, or click “Load sample” to see the format.
  2. Choose your options — delimiter, how nested arrays should expand, whether to flatten nested objects, and a header row.
  3. Convert and export — pick the columns you want, then copy the CSV or download it as data.csv.

Handle nested arrays and objects your way

Real JSON is rarely flat, and that is where most converters fall down — they only flatten with dot-notation and force one shape on you. This tool gives you the full set of array modes: expand to rows creates one CSV row per array item (great for one-to-many data), join collapses an array into a single cell with a separator, and keep as JSON preserves the raw array inside the cell. Nested objects flatten into readable parent.child columns, or you can switch flattening off to keep them as JSON.

Custom delimiters, TSV, and Excel

Choose a comma, semicolon, tab, or pipe — or type your own delimiter. Selecting tab produces a TSV file; semicolon suits European spreadsheets; and the Excel BOM option makes accented and Unicode characters open correctly in Microsoft Excel. A built-in column picker lets you export only the fields you care about without editing your JSON first.

Convert JSON to CSV in Python, JavaScript, or the terminal

If you need the conversion inside a script rather than a one-off export, here are the standard approaches. The tool above matches what these produce — it is simply faster when you just need the file once.

Python (pandas) — the shortest route for a flat array of objects, with json_normalize handling nested keys:

import pandas as pd

df = pd.read_json("data.json")          # flat array of objects
df = pd.json_normalize(records)         # or: flatten nested objects
df.to_csv("data.csv", index=False)

Python (standard library) — no dependencies, and you control the header explicitly:

import json, csv

with open("data.json") as f:
    records = json.load(f)

with open("data.csv", "w", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=records[0].keys())
    writer.writeheader()
    writer.writerows(records)

JavaScript / Node.js — build the header from the union of all keys so records with missing fields still line up:

const rows = JSON.parse(input);
const cols = [...new Set(rows.flatMap(Object.keys))];
const esc = (v) => '"' + String(v ?? "").replace(/"/g, '""') + '"';

const csv = [
  cols.join(","),
  ...rows.map((r) => cols.map((c) => esc(r[c])).join(",")),
].join("\n");

Command line (jq) — handy in a pipeline or CI job:

jq -r '(.[0] | keys_unsorted) as $cols
       | ($cols | @csv), (.[] | [.[$cols[]]] | @csv)' data.json > data.csv

Each of these needs you to handle quoting, embedded commas, and missing keys yourself — exactly the edge cases the converter above already covers.

Common JSON to CSV problems (and fixes)

“My JSON is an object, not an array.” CSV is a table, so it needs a list of records. If your data is wrapped — { "results": [...] } — point the converter at the inner array, or use the JSON flatten tool to reshape it first.

“Every row has different keys.” That is fine: the header becomes the union of all keys and missing values are written as empty cells, so nothing is silently dropped.

“Excel mangles my accents or splits my dates.” Enable the Excel BOM option so Excel reads the file as UTF-8. For a true multi-sheet workbook, use the JSON to Excel converter instead.

“My file is one JSON object per line.” That is JSONL / NDJSON, not JSON. Run it through the JSONL to JSON converter first, then convert the result here.

“The converter says my JSON is invalid.” Fix it with the JSON repair tool, which handles trailing commas, single quotes, and unquoted keys — the usual damage from hand-edited or LLM-generated JSON.

Why use this JSON to CSV tool?

Unlike converters that quietly upload your file and cap you around 10 MB, this one processes everything locally with no file-size limit and no paywall. It validates your JSON before converting, so malformed input is caught with the exact line and column of the error. Need the structure first? Use the JSON viewer to explore it as a tree, the JSON formatter to pretty-print, or the JSON validator to check syntax. Want a different target format? Export a real workbook with the JSON to Excel converter, render a grid with the JSON to table tool, or produce a Markdown table for your README. Going the other way, the CSV to JSON converter turns spreadsheets back into JSON. Learn the details in our guide on how to convert JSON to CSV.

FAQ

JSON to CSV, answered.

How do I convert JSON to CSV online? +

Paste your JSON — usually an array of objects — into the converter above and press Convert to CSV. The tool flattens each object into a row, builds the header from your keys, and shows the CSV instantly. You can then copy it or download a .csv file. Everything runs in your browser, so nothing is uploaded.

How are nested objects and arrays handled? +

Nested objects are flattened into dot-notation columns like address.city and address.zip. For nested arrays you choose the behaviour: Expand to rows creates one row per array item, Join combines them into a single cell, and Keep as JSON writes the raw array into the cell. This lets you turn deeply nested JSON into a clean spreadsheet exactly how you need it.

Can I use a custom delimiter or make a TSV? +

Yes. Pick comma, semicolon, tab, or pipe — or type any custom delimiter. Choosing tab produces a TSV. Semicolon output is handy for European locales where Excel expects it. Enable the Excel BOM option so accented characters open correctly in Microsoft Excel.

Can I choose which columns to export? +

Yes. After converting, every detected column appears with a checkbox. Untick the fields you do not want and the CSV updates immediately — no need to edit your JSON first. Use the All / None buttons to select quickly.

Is there a file size limit? +

No. Because the conversion happens entirely on your device, the only limit is your browser's available memory. Large JSON exports that other converters reject — many cap around 10 MB — convert here without an upload or a paywall.

Is my JSON data safe? +

Completely. This JSON to CSV converter is 100% client-side. Your data is parsed and converted locally and is never sent to, stored on, or seen by any server, making it safe for API responses, exports, and private records.

How do I convert a large JSON file to CSV? +

Paste or drop it in and convert — there is no size cap. Server-based converters usually reject files above about 10 MB because they have to upload and process them; this tool never uploads anything, so a 50 MB or 200 MB export converts as long as your browser has the memory. For very large files, close other tabs first and prefer Chrome or Firefox, which handle big strings best.

What is the difference between JSON and CSV? +

JSON is hierarchical: it stores nested objects, arrays, and real types (numbers, booleans, null). CSV is flat: a simple grid of rows and columns where everything is text. Converting JSON to CSV therefore means flattening — nested objects become dot-notation columns like address.city, and you decide how nested arrays collapse into cells. That is why the array-mode and flattening options above matter.

Why is my JSON not converting to CSV? +

Almost always one of three things. Your JSON is invalid — the converter reports the exact line and column, or you can run it through the JSON validator or JSON repair tool. Your JSON is a single object rather than an array of objects, which produces one row. Or your objects have different keys, in which case the header is the union of all keys and missing values are written as empty cells.

Can I convert JSON to Excel instead of CSV? +

Yes. CSV opens directly in Excel, and enabling the Excel BOM option makes accented and Unicode characters display correctly. If you want a real .xlsx workbook — with multiple sheets — use the JSON to Excel converter instead. To preview your data as a sortable grid first, try the JSON to table tool.