CSV to JSON Converter
RFC 4180 CSV parsed in your browser, with nothing hidden
Free forever — no sign-up, nothing uploaded. Files never leave your device.
CSV to JSON Converter
RFC 4180 CSV parsed in your browser, with nothing hidden
Drop your file here
or browse from your device
Browse filesdocument.pdf
1.2 MB
report.pdf
860 KB
100% private
Nothing is uploaded — everything runs in your browser.
Free forever
No account or payment required.
No sign-up
Open the tool and start using it right away.
Local processing
Processing time depends on your input and device.
About this tool
Convert CSV to JSON with a real RFC 4180 parser: quoted commas, embedded newlines, doubled quotes, CRLF, LF, CR and a UTF-8 BOM. Auto-detects comma, semicolon, tab or pipe and says how sure it is. Every value stays a string.
CSV to JSON is a small job that a naive one-liner gets wrong in a dozen ways, so this page is built around a real RFC 4180 parser written out by hand. A quoted cell that contains commas, a cell with a line break in the middle of it, a doubled quote inside a quoted cell, a file that ends CRLF, a file that ends with a bare CR, a UTF-8 byte order mark on the front, a trailing line ending, and a header row whose names are not unique are all handled as cases with names — not as things that happen to work.
The parser is deliberately honest about the parts that are guesses. A double quote in the middle of an unquoted field is reported as an anomaly with its record, field and character position instead of being swallowed, because that is exactly how a converter loses a column. A row with fewer fields than the header has its missing cells written as JSON null rather than as an empty string, since an empty cell is something the CSV said and a missing cell is something it did not. A row with more fields keeps its extra values in a named array rather than dropping them. Duplicate header names are renamed deterministically and every rename is listed on screen.
No type is inferred. Every value in the output is a JSON string, so 00123 keeps its leading zeros, TRUE stays TRUE rather than becoming true, and a date in whatever format the export wrote stays in that format. That is a decision, not a limitation being hidden: a spreadsheet guesses types on open and this page does not, and it says so in the same font as the rest of the copy.
Input is capped before any parsing work begins — 5,242,880 characters of pasted text, 5 MB of opened file, 20,000 rows, 512 columns per row and 100,000 characters in a single cell — and each cap is refused with the real numbers rather than silently truncating. Your CSV is read in this tab. Nothing is uploaded, and no request is made with your data at all.
Key features
Everything you get with CSV to JSON Converter — no premium upsell.
A real RFC 4180 parser, not split(
): quoted cells with embedded delimiters, embedded line breaks, doubled quotes, CRLF, LF, a bare CR, a UTF-8 BOM and a trailing newline
A quote in the middle of an unquoted field is reported as an anomaly with its record, field and character position — never silently accepted
Every value stays a JSON string: no type inference, so leading zeros, TRUE/FALSE and spreadsheet dates survive exactly as written
Ragged rows are surfaced, not smoothed over: a short row's missing cells become JSON null, a long row's surplus values are kept in a _surplus array, and the count of both is reported
Duplicate header names are de-duplicated deterministically as name (2), name (3) and every rename is listed
Delimiter detection for comma, semicolon, tab and pipe that reports its own confidence, with a manual override
Header-row toggle: keys come from the first row, or are generated as column1, column2 … with the column count taken from the widest record
2- or 4-space JSON indentation and a live row, column and byte count measured on the exact text that is copied and downloaded
Copy and download the JSON; re-parsing the downloaded file gives back the same document
Caps of 5,242,880 characters, 5 MB per file, 20,000 rows, 512 columns per row and 100,000 characters per cell, each refused with its real numbers before any parsing work starts
Cell values are rendered as escaped text only, in a bounded preview that says it is a preview
Runs entirely in this tab — your CSV is never uploaded and no request is made with it
How to use CSV to JSON Converter
Follow the steps below to use the tool.
- 1
Paste the CSV or open a file
Paste into the input box or use Open CSV file. Nothing is pre-filled. An opened file is decoded as UTF-8; a non-UTF-8 file shows U+FFFD characters and the page says how many.
- 2
Check the delimiter and the header row
Auto-detect reports how confident it is and why — read the sentence under Delimiter. If it is not confident, or the header row above does not line up, pick the delimiter yourself.
- 3
Read what was decided
The What was decided panel lists blank lines skipped, duplicate keys renamed, rows padded with null, surplus values kept, the byte order mark, and the line endings found — before you copy anything.
- 4
Copy or download the JSON
Copy puts the exact indented document on the clipboard; Download writes the same bytes to a file named for its source and its row and column count. Both give you every row, not the preview.
Still free, still private — your files never leave your device.
Launch CSV to JSON ConverterFrequently asked questions
Quick answers before you launch the tool.
Related tools
Saved you searching — here are similar utilities.