How to convert CSV to JSON
- Paste CSV into the left panel, drag a
.csvfile onto it, click upload (up to 5 MB) or use Load from URL. The first row must be the header. - JSON appears on the right as you type. Use Tree to browse it or Code for the text; the indent dropdown sets 2, 3 or 4 spaces or tabs.
- Leave Delimiter on Auto, or pick Comma, Semicolon, Tab or Pipe if the guess is wrong.
- Keep Detect numbers/booleans ticked for typed values, or untick it to keep every cell a string.
- Click Copy or Download .json.
What the output looks like
Input:
id,name,email,zip,active,signup_date
1,Maya Patel,maya@example.com,02134,true,2026-01-08
2,"Lee, Jordan",jordan@example.com,10001,false,2026-02-14
Output:
[
{
"id": 1,
"name": "Maya Patel",
"email": "maya@example.com",
"zip": "02134",
"active": true,
"signup_date": "2026-01-08"
},
{
"id": 2,
"name": "Lee, Jordan",
"email": "jordan@example.com",
"zip": "10001",
"active": false,
"signup_date": "2026-02-14"
}
]
Note the zip column: because 02134 has a leading zero, the whole column stays text, so 10001 is "10001" too. Dates are always strings.
Limits and notes
- Files up to 5 MB. For larger exports use a script; see the Python and Node examples in how to convert CSV to JSON.
- Everything runs in your browser; nothing is sent to a server.
- Typing rules:
trueandfalsebecome booleans,nullbecomes null, and plain decimal numbers (including1e3) become numbers. Values with leading zeros and integers beyond 2^53 stay strings; see JSON number precision. Cells are trimmed and empty cells become"". A value such as1.50becomes1.5, so untick the option if formatting matters. - Types are chosen per column: a column becomes numbers only if every non-empty cell is a plain number without a leading zero, booleans only if every non-empty cell is
true/false, otherwise text. Empty cells stay"". - Rows with fewer cells than the header omit the missing keys; rows with extra cells collect them under
__parsed_extra. Blank lines are skipped. - The output is always a flat array of objects. Dotted headers such as
user.nameare not turned into nested objects. Going the other way, JSON to CSV flattens nested objects into exactly those dotted columns. - Not sure which format to keep? See JSON vs CSV.