CSV to JSON

Paste CSV. Get an array of objects, one per row. Numbers, booleans, and nulls are auto-detected.

Runs in your browser. Nothing is uploaded.
CSV in
JSON out

JSONYard's online CSV to JSON converter turns CSV data into a JSON array of objects, with the first row as the header. It infers numbers, booleans, and null, follows RFC 4180 quoting, strips UTF-8 BOMs, and keeps big integers as strings to avoid precision loss — all in your browser.

Got numeric IDs wider than 253−1? Read about JSON number precision for why we keep them as strings.

Parsing rules

  • The first row is treated as the header. Subsequent rows become objects keyed by header.
  • RFC 4180 quoting: double-quoted fields, internal "" = one quote, newlines allowed inside quotes.
  • A leading UTF-8 BOM is stripped automatically.
  • Type inference: integers, decimals, true, false, and null are cast to native JSON types. Big integers (beyond Number.MAX_SAFE_INTEGER) stay as strings to avoid precision loss.

Convert a spreadsheet or Excel file to JSON

Export your spreadsheet as CSV (in Excel: File → Save As → CSV UTF-8; in Google Sheets: File → Download → CSV) and paste the contents into this online CSV to JSON converter. The first row becomes the header — each subsequent row becomes an object keyed by header. Want to go the other way? Use the JSON to CSV converter.

FAQ

What if my file uses semicolons instead of commas?
European CSV (and CSV-from-Excel in many locales) uses ;. A delimiter option is coming. For now, do a find-and-replace before pasting.
Why is a column staying as strings even though it looks numeric?
If even one value in a column doesn't parse as a number, all values in that column become strings — to keep the column shape consistent. Currently each cell is typed independently; per-column inference is on the roadmap.
How do I convert CSV to JSON online without uploading the file?
Paste your CSV into the left pane — parsing runs locally in JavaScript. No CSV row leaves your browser.
Will the resulting JSON validate as proper JSON?
Yes. After conversion, paste the output into the JSON validator to confirm — or pretty-print it with the JSON formatter.

Related conversion tools