CSV to JSON Converter β€” Free Online Tool

Convert CSV / TSV data into a JSON array of objects. Auto-detects the delimiter, infers types (numbers, booleans), supports quoted fields with embedded commas and newlines.

Runs in your browser.

When you'll convert CSV to JSON

CSV is the workhorse of business data exports β€” spreadsheets, CRM dumps, BI exports, analytics downloads. But almost every modern API, JavaScript framework and NoSQL database wants JSON. Converting CSV to JSON is the bridge that lets analytics-team output flow into the engineering side of the stack.

Common scenarios: loading a CSV of customers into a Node.js script for processing; importing a sales export into MongoDB or Firestore; feeding survey results into a React app for visualisation; turning a spreadsheet of products into a mock JSON API for prototyping; converting time-series exports for chart libraries that expect JSON.

How this converter works

The tool parses your CSV using a proper RFC 4180 parser that handles all the edge cases: quoted fields with embedded commas, quoted fields with embedded newlines, escaped double-quotes ("" inside a quoted string). The result is an array of objects where each row becomes one object, and the keys are taken from the header row.

If "Infer types" is on, the parser tries to convert values: 42 becomes a number, true/false become booleans, null becomes null. Everything else stays as a string. Turn this off if you need every field as a string (useful when "01234" should stay as a string and not become the number 1234).

Delimiter auto-detection

"Auto-detect" inspects the first line and counts commas, semicolons, tabs and pipes β€” picking the most-frequent one as the delimiter. Works correctly in 95% of cases. If your CSV has unusual content (e.g. text fields containing many commas), pick the delimiter manually.

Type inference rules

Common gotchas: leading-zero IDs (01234) become numbers (1234) with inference on β€” turn it off to preserve the leading zero. Same for phone numbers, postcodes and ZIP codes.

Without a header row

Untick "First row is header" and column keys become field1, field2, etc. Use this for CSVs that don't have headers.

Tips and best practice

FAQs

Will my CSV data be sent to a server?

No. Parsing runs in your browser.

How big a CSV can it handle?

Tested fine up to ~5 MB / 50k rows. Beyond that, browser memory becomes the limit.

Does it preserve quoted fields with commas?

Yes β€” RFC 4180 quoted-field handling is implemented.

Why do my phone numbers lose leading zeros?

Type inference treats them as numbers. Turn off "Infer types" to keep them as strings.

Can it handle CRLF / LF line endings?

Yes β€” both Windows (CRLF) and Unix (LF) line endings work.

Related CSV tools