Free JSON flattener — upload or paste — no server

Convert JSON to CSV
Flatten any JSON
structure.

Free JSON to CSV converter. Handles nested objects, JSONL, keyed objects and arrays of arrays. Upload a .json file or paste JSON directly. Nested fields are flattened with dot notation automatically. Runs entirely in your browser.

Your data never leaves your browser
Nested JSON flattening
Upload file or paste JSON
Copy to clipboard
Always free
JSON to CSV Converter  100% client-side
Drop your JSON file here
.json, .jsonl or .ndjson — or paste JSON below
or paste JSON directly
 Conversion complete

      
How to convert JSON to CSV

Upload a file or paste JSON — three steps to a flat spreadsheet.

1
Upload or paste your JSON

Drop a .json, .jsonl or .ndjson file — or paste your JSON directly into the text area. CSVShift detects the structure automatically: array of objects, JSONL, keyed object, array of arrays or a single flat object.

2
Configure flattening

Set the flatten depth to control how many levels of nested objects are expanded into dot-notation columns. Choose how to handle array fields — join values, stringify, or take only the first element. Select your output delimiter.

3
Download or copy the CSV

Preview the first 10 rows of output to verify the column structure, then download the .csv file or copy it directly to your clipboard — ready to paste into Excel, Google Sheets or any database tool.

JSON structures CSVShift handles

The converter works with all common JSON shapes automatically.

Array of objects (most common)
[
  { "name": "Alice", "age": 32 },
  { "name": "Bob",   "age": 28 }
]
→ name, age columns
Nested objects (flattened)
[{
  "user": { "name": "Alice" },
  "score": 95
}]
→ user.name, score columns
JSONL / NDJSON
{"name":"Alice","age":32}
{"name":"Bob","age":28}
(one object per line)
→ name, age columns
Keyed object
{
  "alice": { "age": 32 },
  "bob":   { "age": 28 }
}
→ _key, age columns
Why is JSON to CSV conversion challenging?

The structural mismatch between JSON and CSV explained.

CSV is a flat, rectangular format — every row has the same columns and every value is a plain string. JSON is a hierarchical format — values can be nested objects, arrays, typed numbers, booleans or null. Converting between them requires a strategy for handling the mismatch.

The main challenge is nested objects. When a JSON record has { "address": { "city": "Paris", "zip": "75001" } }, a naive CSV converter either drops the nested data or serializes it as a JSON string in one column. CSVShift instead flattens it into separate columns: address.city and address.zip — preserving all data in a format spreadsheets can use directly.

The second challenge is array fields. An array like { "tags": ["sales","europe"] } has no direct CSV equivalent. CSVShift gives you three options: join the values into one cell with a semicolon separator, take only the first element, or stringify the array as a JSON string. Choose based on how the receiving tool will process the data.

When do you need JSON to CSV conversion?

Common developer and analyst workflows where this conversion is essential.

API response to spreadsheet

REST APIs return JSON. When you need to analyze the data in Excel or Google Sheets — ad performance, sales pipeline, user analytics — you need to flatten the JSON response to CSV first. Paste the API response directly into CSVShift and download the spreadsheet.

Database export analysis

MongoDB, Firestore and other NoSQL databases export data as JSON or JSONL. Converting to CSV lets you open the export in Excel, import it into a SQL database, or feed it into a BI tool like Power BI or Tableau.

ETL and data pipeline preparation

Many ETL tools (Airbyte, Stitch, Fivetran) work with CSV as their flat file format. Converting a JSON export to CSV is the standard first step before loading into a data warehouse like BigQuery or Snowflake.

ML dataset preparation

Machine learning pipelines often start with CSV as the input format for feature engineering. Converting a JSON dataset — from a labeling tool, an annotation platform or a scraping job — to CSV is the first preprocessing step before training.

Converter options explained

What each setting does and when to change the default.

OptionValuesWhen to use it
Flatten depth 1 · 3 · 5 · Unlimited 3 levels handles most real-world JSON. Use 1 level for shallow JSON where you only want top-level keys. Use Unlimited for deeply nested structures, but note it may produce many columns for complex data. Keys are joined with dots: a.b.c.
Array fields Join · Stringify · First element Join with semicolon puts all array values in one cell — readable in Excel. Stringify keeps the array as a JSON string — useful when you need to re-parse it later. First element extracts only the first item — use when arrays always have one meaningful value.
Header row Include · Exclude Include adds column names as the first row — standard for most uses. Exclude outputs data rows only — for appending to an existing CSV that already has headers.
Output delimiter Comma · Tab · Semicolon Comma for standard CSV. Tab when field values may contain commas (common in address or description fields). Semicolon for European locale Excel which uses semicolons as the list separator.
Related CSV tools

Other free converters on CSVShift you might need.

Popular searches
json to csv converter convert json to csv online transform json to csv json to csv python flatten nested json to csv jsonl to csv converter ndjson to csv json array to csv convert json file to csv how to convert json to csv json to csv with nested objects json to csv free online api response json to csv

JSON parsed entirely
in your browser. Always.

CSVShift processes every JSON to CSV conversion in JavaScript in your browser. Your file — or the JSON you paste — is never transmitted to any server. The entire parsing, flattening and serialization happens locally, in memory, on your device.

This matters especially for API responses and database exports that may contain sensitive or proprietary data. Nothing leaves your machine at any point during the conversion.

Dot-notation flattening
Nested objects are expanded into parent.child.key columns — all data preserved, none dropped.
JSONL / NDJSON support
Each newline-delimited JSON object becomes a CSV row — no pre-processing needed.
Paste directly
No file required — paste an API response or copied JSON straight into the text area and convert instantly.
Free, no conditions
No record limit, no file size cap, no watermark. Funded by display advertising only.
Frequently asked questions
Common questions about converting JSON to CSV format.
How do I convert JSON to CSV?
Upload a .json file or paste your JSON into the text area, configure the flatten depth and array handling options, and click Convert. Download the .csv or copy it to your clipboard. The tool handles nested objects, JSONL, keyed objects and arrays of arrays automatically.
How do I flatten nested JSON to CSV?
CSVShift flattens nested objects automatically using dot notation. A nested field like {"address": {"city": "Paris"}} becomes a column named address.city in the CSV. Set the flatten depth to control how many levels deep the tool expands.
Can I convert JSONL to CSV?
Yes. Upload your .jsonl or .ndjson file and CSVShift treats each newline-delimited JSON object as a separate record. The tool unions all keys across all records to build the complete column set, so records with missing fields produce empty cells rather than errors.
How do I convert JSON to CSV in Python?
With pandas (recommended for nested JSON): import pandas as pd; df = pd.json_normalize(data); df.to_csv('out.csv', index=False). With built-ins only: import json, csv; data = json.load(open('f.json')); w = csv.DictWriter(open('out.csv','w'), data[0].keys()); w.writeheader(); w.writerows(data). For a no-code solution, use CSVShift.
What happens to JSON array fields when converting to CSV?
You have three options: join all array values into one cell separated by semicolons (most readable in Excel), take only the first element, or stringify the array as a JSON string in one cell. Choose based on how the destination system will process the data.
Is my JSON data safe when converting online?
Yes. The entire conversion runs in your browser. Whether you upload a file or paste JSON directly, the data is processed locally in JavaScript and never sent to any server. This includes sensitive API responses, database exports and configuration files.