JSON ↔ CSV Converter
Convert between JSON and CSV in your browser, both directions. Pick a delimiter, see results instantly, copy or download. Proper RFC 4180 quoting on the way out, type coercion on the way in.
- Runs in browser
- No signup
- No tracking
How to use JSON ↔ CSV Converter
Pick the direction: JSON → CSV or CSV → JSON.
Paste your input. Choose a delimiter if it isn't comma.
Copy or download the result.
Use Swap to round-trip and verify nothing was lost.
When to use it
Exporting an API response to Excel or Google Sheets.
Importing a CSV report into a tool that expects JSON.
Producing test fixtures from a spreadsheet.
Quickly inspecting which columns are present across a list of records.
What it fixes
Hand-quoting CSV fields and missing one that contains a comma.
Online converters that paywall the download.
Re-typing data because the conversion tool dropped a column.
About JSON ↔ CSV Converter
Spreadsheets speak CSV. Tools speak JSON. Anyone bridging the two ends up writing a one-off converter — quoting rules, embedded commas, type coercion, header derivation. This page does all of that.
JSON → CSV expects an array of objects, derives headers from the union of all keys, and quotes any field with a delimiter, newline, or quote inside (per RFC 4180). CSV → JSON parses with proper quote/newline handling, then coerces obvious numbers, booleans, and nulls. Everything stays in your browser.
References: RFC 4180 — Common Format for CSV · MDN — JSON.stringify
Frequently asked
What CSV format does this output?
RFC 4180-compatible: fields that contain the delimiter, a newline, or a double-quote are wrapped in double quotes, and embedded quotes are doubled. Headers come from the keys of the first object (plus any keys that appear later).
How does CSV → JSON handle types?
Values that look like numbers, booleans (`true`/`false`), or `null` are coerced to those types. Everything else stays a string. To keep all values as strings, post-process the output.
Can I use a different delimiter?
Yes — pick comma, semicolon, tab, or pipe. European locales often use semicolon so commas in numbers don't collide.
Are nested objects supported?
JSON → CSV serializes nested objects/arrays as JSON strings inside the cell. CSV → JSON returns flat objects — there's no header convention for nesting in standard CSV.