Home Tools About Us β™₯ Support Us
πŸ“Š JSON to CSV Converter

JSON in,
clean CSV out

Paste, upload, fetch from a URL, or unzip a batch of JSON files β€” flatten, filter, pad, and export exactly the CSV you need. All in your browser.

1. Input

2. Format Options

3. Structure & Data Handling

4. Columns

Detected automatically from your data. Uncheck to exclude, rename inline, drag rows to reorder, or set a fixed width/padding.

IncludeOriginal KeyRename ToFixed LengthPad/Trim

Fixed Length: 0 = no fixed length. Pad/Trim decides whether short values are padded and long values are truncated at thestart orend, or left as anexception (untouched even if it breaks alignment).

5. Search, Sort & Deduplicate

πŸ•˜ Local History

Saved only on this device β€” never uploaded anywhere.

No conversions yet.

How to use every option

  1. Choose an input source β€” Paste JSON directly, Upload a .json/.txt file, fetch it From a URL, or Upload a ZIP containing multiple .json files (each is converted separately).
  2. Pick a delimiter β€” comma, semicolon, pipe, tilde, or type your own custom character.
  3. Set left/right enclosures β€” the characters wrapped around values (default a double quote on both sides); choose whether values are quoted only when needed, always, or never.
  4. Choose EOL and encoding β€” LF/CRLF/CR line endings, and UTF-8 (with/without BOM), UTF-16LE, or ASCII/ISO-8859-1 output.
  5. Toggle header row and EOF β€” include/exclude the header row, and whether a trailing newline is added at the end of the file.
  6. Flatten nested JSON β€” nested objects like{"address":{"city":"Pune"}} become a column namedaddress.city (or your custom separator).
  7. Set date, boolean, and null formatting β€” reformat date-like strings, choose how booleans display, and pick text to use for null/missing values.
  8. Manage columns β€” after your data loads, the Columns table lets you include/exclude, rename, reorder, and set a fixed length with start/end padding or an exception per column.
  9. Search, sort, and deduplicate β€” filter rows by a value (anywhere or in one column), sort by a column, and remove exact-duplicate rows before export.
  10. Convert, preview, and export β€” click Convert to CSV, review the preview table, then copy the CSV text or download it (as a single file, or a ZIP if multiple JSON files were converted).

Built to replace a dozen scattered tools

πŸ“₯
4 Input Modes
Paste, upload a file, fetch a URL, or unzip a batch of JSON files at once.
🧩
Flatten Nested JSON
Dot-notation columns for nested objects and arrays, with a custom separator.
πŸ”€
Full Delimiter Control
Comma, semicolon, pipe, tilde, or any custom character, plus custom left/right enclosures.
πŸ“
Column Padding & Fixed Width
Pad short values and truncate long ones at the start or end, or mark a column as an exception.
πŸ”
Search & Filter
Export only rows matching a value, anywhere or in a specific column.
πŸ—œοΈ
ZIP In, ZIP Out
Unzip a batch of JSON files and download all resulting CSVs bundled back into one ZIP.
πŸ—“οΈ
Date, Boolean & Null Formatting
Reformat dates, choose boolean display, and set custom text for missing values.
πŸ”‘
Encoding & Line Endings
UTF-8, UTF-8 with BOM, UTF-16LE, or ASCII, with LF/CRLF/CR and optional trailing EOF newline.

Frequently Asked Questions

No. Parsing, flattening, and CSV generation all happen locally in your browser. Fetching a URL you provide is the only network request, and it goes straight from your browser to that URL.

Yes. Turn on Flatten Nested Objects to convert nested keys into dot-notation columns (e.g.address.city), with a custom separator if you prefer.

Comma, semicolon, pipe, tilde, or any custom delimiter you type in.

Yes. Upload a .zip file, and every .json file inside is extracted and converted. Download the results as individual CSVs zipped together.

Yes. Set a fixed length per column and choose whether shorter values are padded at the start or end, and whether longer values are truncated or left as an exception.

Yes. Search any value across all columns, or restrict the search to one specific column, and only matching rows are included in the output.

Yes. Choose UTF-8 (with or without a BOM), UTF-16LE, or ASCII/ISO-8859-1, plus LF, CRLF, or CR line endings and an optional trailing newline at the end of the file.

Yes. The tool builds the column list from the union of every key across all rows, so rows missing a field simply get an empty cell there.

Related tools

Browse Other Categories

β™₯

Support EaseDev Studios

All tools are free. If they've saved you time, consider supporting us.

β˜•

Buy Us a Coffee

A quick one-time gesture that means a lot.

Buy a Coffee β†’
πŸŽ—οΈ

Become a Patron

Support us monthly and help build more tools.

Join on Patreon β†’