Skip to content
§
§ · free tool

CSV ↔ JSON converter. Both directions, on your device.

Convert CSV to a JSON array or NDJSON — and back — with RFC 4180 quoted-field parsing, delimiter auto-detect and type inference. Everything runs in your browser; nothing is uploaded.

A free online tool by Digital Heroes
No data yet.

Files never leave your browser — nothing is uploaded.

JSON output

            

Two-way conversion, no upload, no sign-up

Paste CSV or drop a file: it auto-detects the delimiter (comma, semicolon, tab or pipe), treats the first row as headers unless you toggle it off, and can infer types for numbers, booleans and nulls. Output as a JSON array or NDJSON, or flip the direction and turn a JSON array back into RFC 4180-compliant CSV — quoting, escaping and embedded newlines handled correctly. Everything happens locally on your device, so your files are never uploaded and it keeps working offline. Free forever, no limits.

§ 02 · what you can do

Everything a converter should do.

CSV → JSON array One click, auto-detecting comma, semicolon, tab or pipe delimiters.
Export NDJSON JSON Lines for streaming pipelines, BigQuery, DuckDB, MongoDB and LLM fine-tuning sets.
JSON → CSV Switch direction to flatten a JSON array back to CSV, headers and special characters preserved.
Type inference toggle Coerce numbers, booleans and nulls automatically — or keep every cell as a plain string.
Drop a file Drag a .csv or .json file (up to 15 MB) straight onto the tool — nothing leaves your browser.
Copy or download Grab the result as a named .json, .ndjson or .csv file, or copy it in one click.
§ 03 · how to use it

Four steps, no manual.

  1. Pick a direction — CSV → JSON or JSON → CSV — then paste your data or drop a file.
  2. Set the options: delimiter (or leave on auto), first-row-as-header, type inference and NDJSON or pretty-print output.
  3. Read the result in the output pane — it converts live as you type, and the status line shows row count, column count and the detected delimiter.
  4. Use Copy or Download to grab the .json, .ndjson or .csv — or Load sample to see it in action first.
§ 04 · faq

Frequently asked questions.

How does delimiter auto-detection work?
It counts how often comma, tab, semicolon and pipe appear on the first non-empty line and picks the most frequent. Comma is the standard; tab is common in TSV exports; semicolon is the European convention used by German and French Excel; pipe appears in some legacy database exports. If auto-detect picks the wrong one, choose the delimiter manually from the dropdown.
What is NDJSON output good for?
NDJSON (Newline-Delimited JSON, also called JSON Lines) writes each row as an independent JSON object on its own line. Streaming consumers rely on it: pipe each line through jq, post one row at a time to a webhook, or load into BigQuery, Snowflake or DuckDB without a wrapping array. Use NDJSON when the consumer reads line-by-line, and the JSON array when it wants the whole structure at once. Most modern data pipelines prefer NDJSON for files over a few MB.
What does type inference do?
Without inference, every cell stays a string. With it on, the converter coerces values: "42" becomes the number 42, "3.14" becomes 3.14, "true" and "false" become booleans, and "null" becomes null. Values that only look numeric keep their text form — "007" stays a string because the leading zeros would be lost as a number. Toggle it off when your downstream system expects strings, which is common for phone numbers, ZIP codes and product IDs.
How are quoted strings handled?
Per RFC 4180. Cells containing a comma, newline or quote are enclosed in double quotes, and embedded double quotes inside a quoted cell are escaped by doubling them (""). The parser handles all three cases in both directions, so a cell like O"Brien, John appears in CSV as "O""Brien, John" and is un-escaped correctly on the way back to JSON.
Why does the conversion fail on my file?
Most common causes: a BOM character at the start (stripped automatically); inconsistent quoting where a stray quote breaks parsing; a different number of columns per row (the status line warns when row column counts differ from the header); mixed CRLF/LF line endings (tolerated); or a different delimiter than auto-detected — pick it manually from the dropdown and convert again. For JSON → CSV, the input must be an array of objects or an array of arrays.
Is the data I paste sent anywhere?
No. The parser is plain JavaScript embedded in this page, so the conversion runs entirely on your device. There is no library CDN fetch and no network request carries your content — safe for customer data, financial records and internal exports you would not want uploaded to a third-party service.

Published · Last updated .

Online now

Hey there 👋 How can we help you today?