CSV Viewer
Parse CSV into a table, inspect it, and convert to JSON — client-side.
Delimiter
convert
view
About CSV parsing
CSV is the lingua franca of tabular data — spreadsheets export it, databases import it, and data pipelines pass it around. Unlike JSON, CSV has no single standard, but RFC 4180 is the de facto reference. This viewer implements RFC 4180: it understands quoted fields with embedded commas, doubled quotes ("" inside a quoted field), and newlines inside quotes, and it renders the result as a table or as JSON. Everything runs in your browser.
How to use it
Paste CSV text or open a .csv file directly — parsing starts immediately and the table renders in the output panel. Hit Parse (or ⌘/Ctrl+Enter) to re-run after edits. Switch between the Table view for reading and the JSON view when you want structured data; Copy takes whichever view is active. The status bar reports row and column counts so you can sanity-check a file at a glance — a 10,000-row export that parses to 9 rows means something swallowed the line breaks.
Delimiter detection
CSV in the wild uses commas, semicolons (common in European locale exports), tabs, and pipes. The tool auto-detects the delimiter by picking whichever candidate produces the most consistent column count across the first rows, and you can override the choice with the delimiter controls if the data is unusual. Auto-detection matters more than it sounds: opening a semicolon-delimited German Excel export in a comma-only parser collapses every row into one column, while the correct delimiter yields clean columns instantly.
What RFC 4180 actually requires
The rules that trip up hand-rolled parsers are exactly where this viewer follows the spec:
- Quoted fields
- A field wrapped in double quotes may contain commas, line breaks, and quotes — one logical field spanning three physical lines is valid and parses as a single cell.
- Escaped quotes
- A quote inside a quoted field is escaped by doubling it:
"say ""hi"""parses tosay "hi". - Ragged rows
- Real exports have rows with missing trailing columns. Short rows are padded with empty cells so the grid stays rectangular and JSON stays valid.
Common CSV problems
- Everything lands in one column
- The file uses a different delimiter than expected — switch the radio control instead of fighting the parse.
- Rows disappear or merge mid-file
- Usually an unbalanced quote somewhere above: an odd number of quotes makes the parser treat everything up to the next quote as one field. The unterminated-quote warning in the status bar points this out.
- Leading zeros vanished from IDs
- That happens in Excel before export (it coerces ZIP codes and phone numbers to numbers). Format those columns as Text in the spreadsheet before exporting.
- Accented characters show as mojibake
- The file was exported in Windows-1252 but read as UTF-8. Re-export as UTF-8 and the characters survive any parser.
CSV → JSON
The JSON view converts the first row into object keys and each following row into a record, exactly mirroring the JSON to CSVconverter — the two tools are the round-trip pair for moving data between spreadsheets and APIs. Empty headers are renamed to column_N so the JSON stays valid.
From spreadsheet to API payload
The most common workflow here starts in a spreadsheet and ends as JSON: export the sheet to CSV, open it here, switch to the JSON view, and copy structured records straight into a request body, test fixture, or seed script. Working in reverse, take an API's CSV dump, inspect it row by row in the table view, then hand the JSON to theformatter for a readable diff against what you expected. Because both directions run locally, exports containing customer rows or financial figures never touch a server on the way.
Related tools
Convert JSON data the other way with the JSON to CSVconverter, format a JSON payload for inspection with the JSON formatter, or compare two exports row-for-row with the JSON diff tool after converting both.
FAQ
Does this handle quoted fields and commas?
Yes. It implements RFC 4180, so quoted fields with embedded commas, quotes, and newlines parse correctly, and delimiters are auto-detected.
Is my data sent anywhere?
No. Parsing runs entirely in your browser with a small in-page parser — nothing is uploaded.