CSV ↔ JSON Converter
Convert tabular CSV data into a JSON array of objects, or flatten a JSON array back into CSV — entirely in your browser, so exports containing names, emails, or internal data never leave your machine. The CSV side uses a real state-machine parser rather than a naive split on commas: quoted fields may contain the delimiter and even line breaks, doubled quotes ("") are unescaped, and both LF and CRLF line endings are accepted. The first row is read as headers, and short rows are padded with empty strings. In the other direction, a JSON array of objects becomes CSV whose columns are the union of every object's keys, so ragged records still line up. Values containing the delimiter, quotes, or newlines are quoted and escaped automatically, and nested objects or arrays are serialized as JSON strings instead of being dropped. The delimiter selector (comma, semicolon, tab) applies to both directions — useful because Excel in many European locales exports semicolon-separated files.
How to use
- Choose the direction: CSV → JSON or JSON → CSV.
- Pick the delimiter your data uses — comma, semicolon, or tab. Excel in many European locales exports with semicolons.
- Paste your data into the input; the conversion runs live as you type.
- If the input can't be parsed — for example JSON that isn't an array of objects — an error message appears instead of output.
- Copy the result with the Copy button.
Frequently asked questions
- What CSV format does it expect?
- The first row is read as headers and each following row becomes one object. Fields may be wrapped in double quotes to contain the delimiter or line breaks, quotes inside quoted fields are escaped by doubling them (""), and both LF and CRLF line endings work. Rows shorter than the header get empty strings for the missing cells.
- What JSON shape converts to CSV?
- A top-level array of objects. The column set is the union of every object's keys, so records with different fields still line up — missing values become empty cells. Nested objects and arrays are written as JSON strings rather than dropped, and null becomes an empty cell.
- Are numbers and booleans converted?
- CSV has no types, so CSV → JSON keeps every value as a string on purpose: it protects ZIP codes, phone numbers, and IDs from losing leading zeros. Going JSON → CSV, numbers and booleans are written in their plain text form.
- What happens with duplicate or empty headers?
- JSON object keys must be unique, so if two CSV columns share a header, the right-most one wins. An empty header becomes an object key of "" — rename headers before converting if you need every column preserved.
- Is my data uploaded, and is there a size limit?
- Nothing leaves your browser — parsing runs locally, and your input is kept only in the browser's local storage so it survives a reload. There is no hard size limit, but since the conversion re-runs on every keystroke, data beyond a few megabytes can make typing feel sluggish; paste large inputs in one go.
Guides on this topic
Related tools
Excel (XLSX) to CSV, JSON & Markdown
Open an .xlsx workbook in the browser and export any sheet as CSV, JSON or a Markdown table — the file never leaves your device.
CSV to Excel (XLSX) Converter
Turn CSV or TSV into a real .xlsx file in your browser, with leading zeros, long IDs and codes like SEPT1 kept exactly as typed.
CSV → HTML / Markdown / JSON Table
Convert CSV to an HTML `<table>`, a Markdown table, or a JSON array of objects — auto-detects the delimiter.
JSON to Kotlin Data Class Converter
Turn a JSON object into Kotlin data classes with typed properties, in your browser.
JSON Lines (NDJSON) Viewer
Paste or drop a `.jsonl` / `.ndjson` file, see records as a table, filter by `field:value`, pick which columns to keep, and re-export as JSON or CSV.
Fixed-Width Text Parser to CSV / JSON
Split fixed-width / fixed-column text into fields by column widths and export as CSV or JSON, in your browser.