Convert CSV to JSON

Drop a CSV and get JSON back — an array of objects, an array of rows, or NDJSON for a data pipeline. Type conversion is yours to switch on, and it will not eat your leading zeros. Nothing is uploaded.

Drop a .csv file here or click to choose  ·  nothing is uploaded

Why this page has no upload button. Turning a CSV into JSON is text parsing — there is no reason it needs a server. Most online converters upload first anyway, which rules them out for customer exports, payroll and anything under an NDA. This page has nowhere to upload to: open your browser's network tab and drop a file, the request list stays empty.

The conversion that usually goes wrong

Almost every CSV-to-JSON converter either leaves every value as a string, which pushes the parsing work onto whatever reads the JSON, or converts eagerly and quietly destroys data. Eager conversion is the expensive one: 007 becomes 7, a postcode like 01010 becomes 1010, a national ID or card number longer than fifteen digits gets rounded by double-precision arithmetic, and 01.01.2025 turns into a nonsense float.

With conversion switched on, this page refuses those four cases on purpose. A value is only turned into a number when it survives every check: no leading zero, not shaped like a date, at most fifteen digits, no trailing percent sign. Everything else stays exactly the text that was in the file. true and false become real booleans, in any capitalisation.

Which shape do you want

Array of objects[{"name":"Ada","score":91}, …] — the default, and what an API or a JavaScript app normally expects. The header row supplies the keys.
Array of rows[["name","score"],["Ada",91], …] — header first, then one array per row. Compact for large files and the right shape when the column order matters more than the names.
NDJSONOne object per line, no surrounding array, no commas between records. What bulk loaders and log pipelines read, because they can process a line at a time instead of parsing the whole file.

What it handles

DelimiterComma, semicolon and tab, detected automatically from the first line.
QuotesQuoted fields containing commas and line breaks, with "" escaping.
EncodingUTF-8, with or without a byte order mark. The BOM is stripped so it never ends up inside the first key.
HeadersBlank headers become column_1, column_2 and so on. A repeated header gets a numeric suffix, so no key silently overwrites another.
Ragged rowsRows with more values than the header do not lose those values — extra columns are named and the page tells you it happened.
Thousands separators1,234.5 and 1.234,5 are both read as 1234.5 when conversion is on. With conversion off they stay as written.
SizeHeld in memory, and the preview is trimmed, so a few tens of thousands of rows stay responsive. The download always contains everything.

Common questions

How do I convert a CSV to JSON? Drop the file on this page. It reads the CSV in your browser, detects the delimiter, and writes JSON in the shape you choose — an array of objects, an array of rows, or NDJSON. You then download the result as a file. Nothing is uploaded.

Does my file get uploaded anywhere? No. There is no server behind this page. The file is read with the browser's File API and converted inside the page. Once loaded, it keeps working with the network off.

Will it turn my postcodes and IDs into numbers? No. Number conversion is optional, and even when it is on, values with a leading zero, date-like values and digit strings longer than 15 characters are kept as text, because converting them would destroy them.

What is NDJSON and when do I need it? NDJSON is one JSON object per line with no surrounding array and no commas between records. Data pipelines and log tools read it a line at a time, so a large file does not have to be parsed all at once. Bulk loaders such as BigQuery and Elasticsearch expect this shape.

How large a file can it convert? Everything is held in memory, so a few tens of thousands of rows are comfortable. Million-row files belong in a database or a streaming converter.

Related tools

When you want to read the data, not ship it

Sheet Insights takes the same file further — executive summary, trends with forecasting, a statistics centre, data-quality checks and one-click cleaning. Same rule as this page: everything runs in your browser, with no server behind it.

See what Sheet Insights does