CSV to JSON
Parse CSV with a header row into JSON.
FreeRuns in your browserNo signupUpdated 2026-10-29
Without a header row the output is an array of arrays.
Status
Parsed
Delimiter: ,
Records
3
Rows after the header
Fields
6
id, name, email, plan, …
[
{
"id": 1,
"name": "Asha Rao",
"email": "asha@example.com",
"plan": "pro",
"active": true,
"mrr": 49
},
{
"id": 2,
"name": "Omar Haddad",
"email": "omar@example.com",
"plan": "starter",
"active": false,
"mrr": 0
},
{
"id": 3,
"name": "Nair, Priya",
"email": "priya@example.com",
"plan": "pro",
"active": true,
"mrr": 49
}
]About this tool
How it works and how to read the result.
Need this done for you?
Web app & SaaS development
SaaS products and web apps, from first version to scale.
See the serviceWhat it does
The CSV to JSON converter reads a comma, semicolon, tab or pipe separated file and produces a JSON array. With a header row, each line becomes an object whose keys are the column names, which is what most APIs and import scripts expect. Without one you get an array of arrays. Numbers and booleans can be converted to real types or left as strings. The delimiter is detected automatically, quoted fields are handled correctly, and warnings name any row with the wrong number of cells. You can paste text or pick a file; nothing leaves your device.
How to use it
- Paste CSV into the box, or choose a
.csvfile. Its contents load into the box so you can see them. - Leave the delimiter on automatic unless detection picks the wrong one.
- Tick "First row is the header" for an array of objects, and "Convert numbers and booleans" if you want typed values.
- Choose an indent, then copy the JSON or download
data.json.
How to read the result
The three cards show the parse status, the number of records and the number of fields. A customer list with a header plus three lines gives 3 records and 6 fields. If you expected 100 records and see 1, the delimiter is probably wrong: a semicolon file read as comma collapses each line into one cell. Pick the delimiter by hand and the count corrects itself.
A warning such as "Row 7: Too few fields" means that row has fewer cells than the header. Papa Parse still emits the row, with the missing keys absent, so check the source line for a stray line break or a missing comma. "Too many fields" usually means an unquoted comma inside a value.
With type conversion on, a cell of 49 becomes 49, true becomes true, and an empty cell becomes null. A column of ids such as 007 would lose its leading zeros, so leave conversion off for those files.
Going the other way, use JSON to CSV. Import pipelines like this are part of our web app development work.
Questions
Frequently asked.
Why are my numbers in quotes?
Turn on "Convert numbers and booleans". Without it every cell stays a string, which is safer for values such as phone numbers and postcodes that have leading zeros. With it, 49 becomes the number 49 and true becomes a boolean, while anything else stays text.
Can it handle quoted fields with commas inside?
Yes. Standard CSV quoting is understood, so "Nair, Priya" stays one value and doubled quotes inside a field are unescaped. Line breaks inside quoted fields are also kept. If a row has the wrong number of fields you get a warning naming the row.
How big a file can I convert?
Files of a few megabytes convert in a second or two. Everything runs in your browser, so the limit is your device's memory rather than an upload cap. For very large exports, split the file first or the output box becomes slow to scroll.
Your next move
Like what you see? Tell us about it.
A process that takes too long, a website that undersells you, or an idea ready to take shape. Tell us where you are and we will suggest a useful next step.
India · Working with clients worldwide