Skip to content
JSON to CSV

Free online CSV to JSON converter

Convert CSV to JSON in your browser

CSV to JSON is a free, browser-based converter that turns a spreadsheet export into JSON your code can read. It detects the delimiter, types numbers and booleans, and outputs an array of objects, JSON Lines, or a plain grid of arrays. There is no signup and no upload — your data is processed entirely in your browser and never leaves your device.

  • 100% free
  • No upload
  • No signup
  • Auto delimiter
  • NDJSON output

Accepts comma, semicolon, tab, or pipe separated text with quoted values. You can also drop a file anywhere on this panel.

Advanced options

How to convert CSV to JSON

Three steps, entirely in your browser — your CSV never leaves your device.

  1. Paste CSV or drop your files

    Paste comma, semicolon, tab, or pipe separated text into the box, or drag up to 20 .csv files (25 MB each) onto the panel. The delimiter is detected automatically and conversion starts as soon as the first row is readable.

  2. Choose the JSON shape

    Pick an array of objects (one object per row, keys taken from the header), JSON Lines / NDJSON for streaming and log pipelines, or an array of arrays when you want the raw grid. Decide whether numbers and booleans are typed or kept as strings, and whether dotted column names rebuild nested objects.

  3. Copy or download the JSON

    Check the result in the JSON view or as a table, then copy it to the clipboard or download a .json file. Converting several files at once? Grab them all as a single ZIP.

Technical specifications

Input formatsCSV, TSV, and any delimited text (RFC 4180 quoting, CRLF or LF)
DelimitersAuto-detected — comma, semicolon, tab, or pipe; overridable
Output shapesArray of objects, JSON Lines / NDJSON, array of arrays
TypingNumbers, booleans, and null detected — or every field kept as a string
Nested outputDotted column names (user.city) rebuilt into nested objects
Formatting2 spaces, 4 spaces, tab, or minified
Batch limitUp to 20 files, 25 MB each — download all as one ZIP
Processing location100% in your browser — no upload, works offline
PriceFree — no signup, no watermark, no row limit

Frequently asked questions

How do I convert CSV to JSON?
Paste your CSV into the box above or drop a .csv file onto it. The converter reads the header row as the object keys, turns every following row into one JSON object, and shows the result instantly. Click Download JSON or Copy JSON to save it. Everything happens in your browser, so there is nothing to install and no file is uploaded.
Is this CSV to JSON converter free?
Yes. It is completely free with no signup, no row cap, and no upload. The tool is funded by unobtrusive ads and runs entirely in your browser.
Does it detect semicolon or tab separated files?
Yes. The delimiter is detected from the first record, so semicolon exports from European Excel and tab separated .tsv files convert without any setting change. The detection is quote-aware, so a single value like “Lovelace, Ada” will not make a semicolon file look comma separated. You can always override the choice in the Delimiter selector.
Will numbers stay numbers in the JSON?
By default yes: 42 becomes the number 42, "true" and "false" become booleans, and empty cells become empty strings (switch them to null or omit the key under Advanced options). Values that only look numeric are left as strings on purpose — post codes like 00501, product codes, and IDs longer than 15 digits keep their leading zeros and exact digits instead of being rounded. Switch Values to "Keep everything as strings" if your consumer expects strictly textual fields.
Can I get JSON Lines (NDJSON) instead of one big array?
Yes. Set JSON shape to JSON Lines / NDJSON and each row becomes one compact JSON object on its own line — the format BigQuery, Elasticsearch bulk loads, and most log pipelines expect. The file downloads with an .ndjson extension.
How do I turn CSV columns back into nested JSON objects?
Enable "Rebuild nested objects from dotted columns". A column named address.city then produces {"address": {"city": "London"}} instead of a flat key with a dot in it. This is the exact inverse of the dot-notation flattening our JSON to CSV converter applies, so a round trip returns the structure you started with.
What happens if some rows have more or fewer columns?
The converter uses the widest row to decide the field set, pads short rows with empty values, and shows a warning telling you how many rows were ragged. Nothing is dropped silently, so you can spot a broken export instead of shipping half a dataset.
What if the first row is data, not a header?
Untick “First row is the header”. Keys then become field_1, field_2, and so on, and every row — including the first — is converted as data. For headerless grids the array-of-arrays shape is often a better fit than objects.
Is my data private?
Yes. The conversion runs locally in JavaScript in your own browser tab. Your CSV is never sent to a server, logged, or stored, and the tool keeps working offline once the page has loaded.
How large a file can it handle?
Each file can be up to 25 MB and you can convert up to 20 files at once. Because the work happens on your device, the practical limit is your available memory rather than an upload quota — most multi-megabyte exports convert in well under a second.

Which JSON shape do you need?

CSV has one shape; JSON has several, and picking the wrong one is what makes an import fail. An array of objects is what a REST API, a JavaScript fetch handler, or a MongoDB insertMany expects — each row is a record with named keys. JSON Lines (NDJSON) is the same records without the wrapping array, one per line, which is what BigQuery loads, Elasticsearch bulk indexing, and log shippers read; it also streams, so a huge file never has to be held in memory as a single value. An array of arrays keeps the grid as-is and suits chart libraries and the Google Sheets API.

Type detection is the other place converters quietly damage data. Writing every field as a string is safe but forces your code to cast; typing everything is convenient until a post code like 00501 loses its leading zeros or a 19-digit ID gets rounded by IEEE 754 arithmetic. This converter types plain numbers, booleans, and null, and leaves anything that would lose information alone — and you can turn typing off entirely.

Parsing follows RFC 4180, so quoted values containing the delimiter, escaped "" quotes, and newlines inside a cell are read correctly rather than splitting a record in half. Mixed CRLF and LF endings, a missing final newline, and ragged rows are all handled — ragged rows raise a visible warning instead of dropping fields.

Need the other direction? The JSON to CSV converter flattens nested JSON back into columns, and JSON to Excel writes a spreadsheet Excel opens with a double-click. Because the dot-notation naming matches on both sides, JSON → CSV → JSON is a lossless round trip for tabular data.

Your data never leaves your browser

Parsing and conversion run locally in JavaScript inside your own tab. We do not upload, store, or analyse your data — no rows, headers, or values are sent anywhere. The tool keeps working even if you disconnect from the internet after the page loads.