Convert comma-separated value (CSV) data into a JSON array of objects. The first row is treated as the header and becomes the keys of each JSON object. Handles quoted values, commas within fields, and Windows/Unix line endings. Perfect for preparing spreadsheet data for APIs, databases, or JavaScript applications.
Paste your CSV data
Paste CSV content with a header row. The header values become the keys in each JSON object. Standard CSV format: values separated by commas, quoted strings for values containing commas.
Click Convert
Each subsequent row becomes one object in the output JSON array. Empty rows are skipped. Quoted values are unquoted and double-quotes within fields are unescaped.
Copy or download the JSON
Use the Copy button to copy the JSON array, or Download to save a .json file ready for use in APIs, databases, or code.
Use in your application
The output is a standard JSON array that works with any programming language, REST API, MongoDB, or JavaScript application.
All values in the header row become keys. If some columns have empty header cells, those keys will be empty strings in the JSON output. Most CSV exports from Excel or Google Sheets have complete headers, but CSVs from custom tools may not.
This tool uses comma as the delimiter, which is the CSV standard (RFC 4180). Semicolons are used in some European locales where comma is the decimal separator. To handle semicolon-delimited files, first do a global find-and-replace of semicolons with commas (in a text editor), then paste the result.
Yes. CSV has no type system — all values are text. The JSON output represents all values as strings. If you need typed values (numbers, booleans), post-process the JSON in your code: parseInt(row.age), row.active === "true", etc. Automatic type detection is intentionally avoided to prevent incorrect transformations.
Fields containing commas must be wrapped in double quotes in valid CSV: "New York, NY". This tool handles quoted fields correctly. If your CSV has unquoted commas in fields, the parser will treat them as column separators, which will produce incorrect output. Fix the source CSV to quote fields with commas before converting.
The browser handles most practical CSV sizes well. A 10 MB CSV with 100,000 rows typically converts in under a second. For CSV files over 50 MB, performance may degrade and the browser may warn about unresponsive tabs on slower devices. For large-scale data processing, server-side tools or Python's pandas library are more appropriate.
Something not working? Report a bug