CSV → JSON
Convert CSV to JSON online
Turn CSV into JSON objects or arrays. Auto-detects delimiter, handles quoted fields, guesses numeric types, and supports large files. In-browser.
Last updated:
[object Object]
[object Object]
[object Object]
Open the CSV → JSON converter
Runs entirely in your browser. No signup, no upload.
Launch converter →Example: CSV → JSON
Input (.csv)
name,email,signup_date,active
Alice,[email protected],2024-01-15,true
Bob,[email protected],2024-02-20,false
Ciaran,[email protected],2024-03-05,true Output (.json)
[
{ "name": "Alice", "email": "[email protected]", "signup_date": "2024-01-15", "active": true },
{ "name": "Bob", "email": "[email protected]", "signup_date": "2024-02-20", "active": false },
{ "name": "Ciaran", "email": "[email protected]", "signup_date": "2024-03-05", "active": true }
] How to convert CSV to JSON manually
Prefer scripting this in a pipeline? Here are the most common CLI and library approaches.
Python with pandas
import pandas as pd
pd.read_csv('in.csv').to_json('out.json', orient='records', indent=2) Node.js with papaparse
const Papa = require('papaparse');
const csv = require('fs').readFileSync('in.csv','utf8');
const { data } = Papa.parse(csv, { header: true, dynamicTyping: true });
require('fs').writeFileSync('out.json', JSON.stringify(data, null, 2)); csvkit CLI
csvjson in.csv > out.json Frequently asked questions
My CSV has semicolons, not commas. Will it still work?
Yes — we auto-detect the delimiter by sniffing the first line. If detection is ambiguous (mixed delimiters), you can force comma, semicolon, tab, or pipe in the options panel.
Does it guess types?
By default, yes. `42` becomes a number, `true`/`false` become booleans, `null`/empty strings become null. Toggle off `Smart types` to keep every field as a string — useful when your IDs have leading zeros that numeric casting would strip.
What about quoted fields with commas inside?
Handled correctly per RFC 4180. `"Doe, John",35` parses as two fields: `Doe, John` and `35`. Embedded double-quotes are escaped as `""` in the source and unescaped in the output.
I have a 200 MB CSV — will the browser freeze?
For very large files (>50 MB) we stream the parse via Web Workers so the UI stays responsive. Expect conversion to take a few seconds; memory usage peaks around 2× the input size.
How do I skip a malformed row instead of aborting?
Enable `Tolerant mode` — bad rows are collected into an errors panel so you can fix them, while the good rows still produce output JSON.
