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.

🔒 100% private — nothing is uploaded or stored. Your CSV is read, parsed and converted entirely in this browser tab and never leaves it — there is no server-side processing and no network request. Inspect customer lists, payroll exports or any sensitive spreadsheet data without sending it to a third-party converter, and it keeps working offline.

CSV input

📁 Drop a CSV file here, or click to browse .csv, .tsv, .txt — read locally in your browser, never uploaded

…or paste CSV text below. The table and JSON update as you type.

Try a sample:

Options

Delimiter
Quote char
Header row
JSON format

Table

Column profile (types, unique values, ranges)

JSON 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 to He 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, Unix LF or old Mac CR endings; 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 fileParsed asNotes
"Smith, John",AcmeSmith, John / AcmeThe 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 newlineThe row is not split; the table shows the line break inside the cell.
date;product;units3 columnsSemicolon is auto-detected (common for Excel in many European locales).
a,b,c then 1,2ragged row warningShort 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

 CSVJSON
StructureFlat rows + headerNested objects and arrays
TypesEverything is textNumbers, booleans, null, nesting
ParsingTricky (quoting rules, delimiters, BOM)Trivial (JSON.parse)
Best forSpreadsheets, exchange between toolsAPIs, application data
SizeCompactMore 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.56 will 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, 7 and 7.0 are all just text. The column profile shows the detected type so you know what you are dealing with before you convert.

Luke Keam
Thank you for reading. Get in touch
Luke Keam | techgeek.biz