Tools
CSV to JSON converter
Paste a CSV or drop in a .csv file and get clean, pretty-printed JSON you can copy in one click. The in-house parser handles quoted fields, embedded commas and newlines, escaped quotes, and comma, semicolon, or tab delimiters, with a header-row toggle that switches the output between an array of objects and an array of arrays. Everything runs in your browser; your data is never uploaded.
Paste your CSV
Everything runs in your browser. Nothing is uploaded or sent over the network.
From spreadsheet rows to structured JSON
CSV (comma-separated values) is the lowest common denominator for tabular data: every spreadsheet, database, and analytics tool can export it. But most APIs, config files, and code expect JSON. This converter bridges the two: it reads your rows, respects the quoting rules that keep commas and line breaks inside a single field, and emits indented JSON that drops straight into a request body, a fixture file, or a const data = … in your app.
Because it's entirely client-side, it's a good fit for data you'd rather not paste into a random web service: exports of users, orders, or logs that may contain personal information. Nothing is transmitted, so the conversion is as private as opening the file locally.
The parser is deliberately forgiving about row endings and empty trailing lines, and strict where it counts: unbalanced quotes and oversized input surface a clear inline message instead of producing silently wrong JSON. Toggle number and boolean inference on for clean typed output, or off when you need every value preserved verbatim as a string.
Frequently asked questions
- Is my data uploaded anywhere?
- No. Parsing happens entirely in your browser with plain Web APIs. There are no network requests and nothing is stored on a server. You can open your DevTools Network tab and watch: clicking Convert to JSON makes zero requests. That makes it safe for internal exports and anything with customer data.
- How does it handle quoted fields, commas, and line breaks inside a cell?
- The parser follows the RFC 4180 conventions. A field wrapped in double quotes can contain the delimiter, line breaks, and literal quotes. An escaped quote is written as two double quotes (
"") and unwrapped to a single one in the output. It accepts\n,\r\n, and lone\ras row terminators. - What if my file uses semicolons or tabs instead of commas?
- Pick the matching delimiter (comma, semicolon, or tab) from the Delimiter dropdown before converting. Semicolon-separated files are common in locales where the comma is a decimal separator, and tab-separated (TSV) exports work the same way.
- Objects or arrays: what shape is the JSON?
- With First row is a header enabled, each remaining row becomes an object keyed by the header names, producing an array of objects. Turn it off and every row becomes an array of string values, producing an array of arrays, which is useful when your CSV has no header line.
- Why did a number or "true" come out as a string?
- By default Infer numbers & booleans converts clean numeric literals to numbers and
true/false/nullto their JSON types. Values with leading zeros (like ZIP codes or IDs) are intentionally kept as strings so they aren't mangled. Uncheck the option to keep every value as a string. - Is there a size limit?
- Input is capped at about 5 MB so a huge paste can't freeze the tab, and there's a further guard on total cell count. For larger datasets, split the file or filter it down first. Malformed input returns a friendly inline message instead of crashing.

