CSV to JSON Converter

Data Conversion

Parse a CSV file into a clean, properly typed JSON array.

Runs entirely in your browser — nothing is uploaded

Features

  • Full RFC 4180 parsing — quoted fields keep their commas and line breaks.
  • Detects comma, semicolon, tab and pipe separators automatically.
  • Types numbers and booleans, while leaving leading zeros as strings.
  • Reports ragged rows instead of silently dropping them.
  • Array of objects or newline-delimited JSON output.
  • Rebuilds dotted headers back into nested objects.

How to use the CSV to JSON Converter

  1. 1Paste your CSV, or drop a .csv or .tsv file onto the box.
  2. 2Check the detected separator and whether the first row is a header.
  3. 3Copy the JSON or download it.

Frequently asked questions

Does it handle commas and line breaks inside a field?

Yes. A quoted field can contain the separator, line breaks and doubled "" quotes, all of which are read correctly. That matters because address and description columns from a real export almost always contain at least one of them.

Why did my pin code lose its leading zero?

It should not — the converter deliberately leaves any value with a leading zero as a string, because a pin code, a phone number and an SKU are identifiers rather than quantities and are destroyed by being turned into numbers. Values starting with + are left alone for the same reason. If you want everything as strings, turn off “Detect numbers & booleans”.

What happens to rows with the wrong number of fields?

They are converted anyway — missing fields become null and extra ones are ignored — and the row numbers are reported as a warning. One malformed row is not a reason to refuse the other ten thousand.

Can I get one JSON object per line instead of an array?

Yes. Choose “Newline-delimited” for NDJSON, which is what log pipelines, BigQuery and many bulk-import APIs expect.

What does “Rebuild dotted keys” do?

It reverses the flattening the JSON to CSV tool applies. A header of address.city produces a nested {"address":{"city":…}} object, so data can round-trip through a spreadsheet and come back with its shape intact.