Skip to content
EVOA Toolbox

CSV to JSON Converter

Convert CSV or TSV to JSON in your browser. Auto-detects the delimiter, handles quotes and BOM, and previews the first rows.

Processed locally in your browser. Your files are not uploaded.

Loading tool…

What this tool does

Drop a .csv file or paste CSV text and get a JSON array instantly. The parser follows the CSV conventions people actually meet: quoted fields, commas and line breaks inside quotes, doubled quotes as escapes, Windows or Unix line endings and a UTF-8 byte-order mark from Excel. The delimiter (comma, semicolon, tab or pipe) is detected automatically, or you can set it yourself for European exports that use semicolons.

Choose the shape you need: an array of objects keyed by the header row (best for APIs and apps) or an array of arrays (best for compact data and charts). Turn on automatic types to convert numbers, true/false and empty cells to real JSON values; numbers with leading zeros such as ZIP codes and IDs longer than JavaScript can hold safely are kept as text so nothing is corrupted. Pick 2- or 4-space, tab or minified output.

A preview table shows the first 100 rows. Problems such as rows with too few or too many fields, unclosed quotes and duplicate column names are listed with their row numbers, and the data is still converted (short rows are padded, extra cells get new columns, duplicate names get _2). Files over 1 MB are parsed in a background worker with a progress bar, so large exports do not freeze the page.

How to use it

  1. 1Drop a CSV file, or paste CSV text into the box.
  2. 2Leave the delimiter on Auto-detect, or choose comma, semicolon, tab or pipe. Say whether the first row is a header.
  3. 3Choose the JSON shape, automatic types and indentation. Small inputs convert as you type; for large files press Convert.
  4. 4Check the preview and any reported problems, then Copy or Download the JSON.

Supported formats

Input: .csv, .tsv or .txt files and pasted text in UTF-8. Output: JSON (.json), as an array of objects or an array of arrays.

Privacy

This tool runs in your browser. The data you provide is processed on your device and is not sent to our servers.

Limitations

  • The whole file is read into memory, so very large CSVs (hundreds of MB) may be slow or fail on low-memory devices. The size limit is shown in the drop area.
  • Files must be UTF-8 (a BOM is fine). Other encodings such as Windows-1252 or Shift-JIS can show garbled characters; re-save the file as UTF-8 first.
  • Automatic types are heuristics: values like 1e3 become numbers and 'true' becomes a boolean, which may not be what a text column intends. Leave the option off to keep every value as a string.
  • Dates are not converted; they stay as text.
  • Only the first 100 rows are shown in the preview, and the on-page JSON text is shortened for very large results (Copy and Download include everything).

FAQ

Is my CSV uploaded to a server?

No. Parsing and conversion run in your browser, and large files use a background worker on your device.

How does delimiter detection work?

The tool tries comma, semicolon, tab and pipe on the first rows and picks the one that gives the most consistent number of columns. You can override it if a file is unusual.

What happens to rows with the wrong number of fields?

They are reported with their row numbers. Short rows are padded with empty values and extra cells are kept in new columns named column_N, so no data is silently dropped.

Why is my ZIP code still a string?

With automatic types, values with leading zeros are kept as strings so '02134' does not become 2134. Large integers beyond JavaScript's safe range also stay as strings.

Can I convert without a header row?

Yes. Turn off the header option; columns are named column_1, column_2 and so on, and every row is treated as data.

Related tools