CSV to JSON Converter — Paste, Drop or Open a File
Paste CSV or drop a file and the JSON appears beside it as you type. The delimiter is detected for you, numbers and true/false become real JSON values, and ZIP codes and long IDs stay text so nothing is silently changed. Choose objects, arrays, columns or JSON Lines, then copy or download. Files are read by your browser and never uploaded.
Preview
What CSV to JSON Converter does
JSON beside your CSV, instantly
There is no Convert button to press. The JSON pane updates on every keystroke and every option change, so you can see exactly what each setting does.
Numbers without the data loss
Most converters turn 02139 into 2139 and round a 19-digit order ID. Here a column that contains a leading zero or an over-long number stays text in every row, so one field never has two types.
Delimiter and quotes handled
Comma, semicolon from European Excel, tab and pipe are detected automatically. Quoted fields with commas, doubled quotes and line breaks inside a cell are parsed the way RFC 4180 says.
Four shapes of JSON
An array of objects for APIs, arrays of values for charts, one array per column for analysis, or JSON Lines for streaming, BigQuery and log pipelines.
Problems pointed out, not hidden
A row with a missing or extra field is flagged with its line number, and an unclosed quote is reported where it starts, so you can fix the source instead of guessing.
Your data stays on your device
Customer lists and exports are exactly what should not be uploaded to a stranger's server. The file is read by your browser and converted there; nothing is sent anywhere.
Supported formats
The formats and standards this tool works with.
How it works
Add your CSV
Paste it, drop a .csv or .tsv file on the box, or open one.
Check the options
The delimiter is detected for you. Choose how empty cells appear and whether a.b headers should nest.
Pick a shape
Objects, arrays, columns or JSON Lines, with 2 spaces, 4, tabs or minified.
Copy or download
Copy the JSON or save it as a .json or .jsonl file named after your CSV.
Cheatsheet
The tokens you reach for most, at a glance.
"a, b"A quoted field — the comma inside is part of the value"say ""hi"""A doubled quote inside quotes is one literal quote: say "hi"02139Leading zero — the column is kept as texttrue / FALSEBecomes a JSON boolean (any capitalisation)(empty)null, an empty string, or no key — your choiceplan.priceWith nesting on, becomes {"plan": {"price": …}}How people use it
Seeding an API or database
Turn a spreadsheet export into the array of objects a fixture file, a REST endpoint or a MongoDB import expects.
Front-end mock data
Keep test data in a spreadsheet where it is easy to edit, and paste the JSON straight into your component or story.
Charts and dashboards
The Columns shape gives one array per field — the format most chart libraries take for a series.
Excel and Google Sheets exports
Save as CSV, drop the file in and get JSON — including semicolon files from European locales that break other tools.
Frequently asked questions
Is my file uploaded?
No. The file is read by your browser with the File API and converted on your device. There is no server copy, which is why there is no sign-up and no daily limit.
Why is my ZIP code or ID still a string?
Because turning it into a number would change it. 02139 would lose its leading zero, and an integer longer than 15–16 digits cannot be stored exactly in JSON numbers as JavaScript reads them. When any cell in a column is like that, the whole column stays text so the field has one type in every record. Untick Detect numbers to keep every value as text.
My CSV uses semicolons. Will it work?
Yes. Excel in much of Europe saves CSV with semicolons because the comma is the decimal separator. Auto-detect picks the delimiter that appears consistently on every line, ignoring anything inside quotes. You can also choose it yourself.
What does "Nest a.b headers" do?
It turns columns named address.city and address.zip into {"address": {"city": …, "zip": …}}. If a plain address column also exists, the dotted columns stay flat rather than overwrite it.
What is JSON Lines?
One complete JSON object per line, with no surrounding array. It is what BigQuery, many log tools and streaming pipelines expect, because a file can be read one line at a time. Downloads in this shape use the .jsonl extension.
Some rows have the wrong number of fields — what happens?
Missing cells are filled as empty, extra cells get a column_N header, and the first few affected rows are listed with their line numbers so you can fix the source. Nothing is dropped.
How big a file can I convert?
Up to 50 MB. Files over 2 MB are converted in full but not shown in the editor, and the JSON pane shows the first megabyte — Copy and Download always give you everything.
Can I go the other way, JSON to CSV?
Not in this tool yet. For extracting links from a JSON response, the API URL Extractor reads JSON the same private way.
Last updated 2026-09-15