CSV Viewer & Converter
Upload a CSV, browse it in a sortable, searchable table with a column profile, and convert between CSV and JSON — all in your browser.
Drop in a .csv, .tsv or .txt file (or paste the text) and the tool
parses it with a proper RFC 4180 parser: quoted fields, doubled quotes, embedded newlines,
auto-detected delimiters and BOM handling. Browse the data with click-to-sort columns, full-text search
and pagination that stays fast on large files, then export to JSON (array or NDJSON) — or paste
JSON and get a clean CSV back.
CSV input
…or paste CSV text below. The table and JSON update as you type.
Table
Column profile (types, unique values, ranges)
JSON output
JSON input
Paste an array of objects (an API response or .json file), a single object,
or an array of arrays. Nested objects and arrays are serialised to compact JSON strings.
CSV output
How the parser handles the tricky parts
CSV looks simple — comma-separated values — until your data contains a comma, a newline, or was exported by Excel in a different locale. The format is specified in RFC 4180, and the rules that matter in practice are:
- Quoted fields. A field wrapped in double quotes may contain the delimiter
(
"Smith, John"is one field, not two). - Doubled quotes. A literal quote inside a quoted field is written twice:
"He said ""hi"""parses toHe said "hi". - Embedded newlines. A quoted field may span multiple lines — the row
ends at the next newline outside quotes. This is why a naive
line.split(',')parser silently corrupts such files. - Line endings. Files may use Windows
CRLF, UnixLFor old MacCRendings; all three are handled. - UTF-8 BOM. Excel prepends an invisible
\uFEFF;byte-order mark to UTF-8 files, which would otherwise become part of your first column name. This tool strips it and tells you when it did.
The tricky cases, side by side
| In the file | Parsed as | Notes |
|---|---|---|
"Smith, John",Acme | Smith, John / Acme | The comma inside quotes is data, not a separator. |
"He said ""hi""" | He said "hi" | Doubled quotes become one literal quote. |
"line one
line two" | one field containing a newline | The row is not split; the table shows the line break inside the cell. |
date;product;units | 3 columns | Semicolon is auto-detected (common for Excel in many European locales). |
a,b,c then 1,2 | ragged row warning | Short rows are padded with empty values; extra cells become extra_N fields in the JSON. |
How delimiter auto-detection works
The tool samples the first 40 non-empty lines and counts how often each candidate delimiter
(, ; \t |) appears outside quoted
fields. The winner is the candidate that shows up on the most lines with the most consistent
column count — a file full of commas inside unquoted text scores poorly on consistency and
loses to a real delimiter. If the table looks wrong, override the delimiter in Options, including
a custom character.
CSV vs JSON
| CSV | JSON | |
|---|---|---|
| Structure | Flat rows + header | Nested objects and arrays |
| Types | Everything is text | Numbers, booleans, null, nesting |
| Parsing | Tricky (quoting rules, delimiters, BOM) | Trivial (JSON.parse) |
| Best for | Spreadsheets, exchange between tools | APIs, application data |
| Size | Compact | More verbose (keys repeated per row) |
If you tick Infer types in JSON, values that look like numbers or booleans are converted
(12.5, true) instead of staying strings; by default the conversion is
faithful and every value stays exactly as it appeared in the file.
⚠️ Pitfalls to watch for
- Locale delimiters. Excel in Germany, France, the Netherlands and many other locales exports with
;instead of,. If your columns come out as one giant column, switch the delimiter to semicolon. - Thousands separators. A value like
1,234.56will be split on the comma unless the field is quoted. If you cannot re-export the source, use a different delimiter or fix the quoting at the source. - UTF-8 BOM. Invisible, but it corrupts the first header name in naive tools. This tool strips it automatically.
- Ragged rows. Rows with a different column count are flagged with a warning; decide whether to fix the source or keep the padding behaviour.
- Everything is a string. CSV has no type system —
007,7and7.0are all just text. The column profile shows the detected type so you know what you are dealing with before you convert.