# Convert CSV to JSON

> Parses RFC 4180 CSV into four output shapes — array of objects, array of arrays, column maps, or NDJSON for streaming pipelines. Auto-detects the delimiter, infers column types in a preview row, and optionally turns "42" into a real JSON number. All parsing runs locally; the CSV never leaves the tab.


Live tool: https://lofttools.com/tools/dev-tools/csv-to-json

Category: Dev Tools

## How it works

1. **Paste CSV** — Paste your CSV data or open a CSV file
2. **Configure** — Pick a delimiter (or let it auto-detect) and choose the output shape — array of objects, arrays, column array, or JSON Lines
3. **Tune output** — Toggle parse-numbers, lowercase keys, NULL → null, omit empty fields, or minify the result
4. **Copy JSON** — Copy the JSON output or download it as a .json file

## FAQ

### How does auto-detect delimiter work?

It scans the first non-empty line, counts unquoted commas, tabs, semicolons, pipes, and colons, and picks whichever occurs most often. You can override this with an explicit choice or a custom single character.

### Does it handle quoted fields, embedded commas, and escaped quotes?

Yes. Full RFC 4180 quoting is supported — fields wrapped in double quotes may contain the delimiter, newlines, or doubled ("") quotes which unescape to a single quote.

### Can I turn "42" into 42 in the JSON output?

Yes. Enable "Parse numbers" under Parsing options and integer or decimal cell values become JSON numbers. Values that aren't strictly numeric are left as strings.

### What output formats are supported?

Four shapes — Array of objects (default), Array of arrays (nested list), Column array (per-column arrays keyed by header), and JSON Lines / NDJSON (one record per line, ideal for streaming tools).

### What is the column type preview?

When headers are enabled, a row of chips shows the inferred type (number, boolean, null, string, empty) for every column based on all data rows — so you can see which columns will change if you enable parse-numbers before converting.

### Can I skip junk rows at the top of a CSV?

Yes. Set "Skip leading rows" under Parsing options to drop N rows before parsing — useful when exports prepend a title row or metadata.

## Tips

- **Let auto-detect pick the delimiter** — It scans the first non-empty line and picks the most-common unquoted separator across commas, tabs, semicolons, pipes, and colons. Override only when the guess is wrong.
- **Switch shape for streaming pipelines** — Output supports array of objects, array of arrays, column array, and JSON Lines / NDJSON — one record per line for tools that read a stream.
- **Parse-numbers turns 42 string into number** — Toggle Parse numbers under Parsing options to convert numeric cells to JSON numbers. Non-numeric values stay as strings, so IDs with leading zeros survive.

## Privacy — what we do not do

This tool runs entirely in the browser via WebAssembly. Your file never reaches a Loft Tools server. Specifically:

- **No upload.** The file bytes load into the browser tab's memory and process on your own CPU. Open DevTools → Network and observe zero outbound requests carrying file data while Convert CSV to JSON runs.
- **No AI training on your file.** Loft does not train models. We could not train on a file we cannot see.
- **No content scanning.** No virus, copyright, or content-moderation pass against your file. The bytes are not accessible to us.
- **No server-side log of file contents, filenames, or EXIF metadata.** Cloudflare edge captures URL and truncated IP for abuse defense (standard CDN behaviour). Cloudflare Web Analytics records anonymous page hits, no cookies, no PII. Nothing about your file content reaches any log.
- **No retention.** Close the tab and the file leaves browser memory. No backups exist on our side because no copy ever existed on our side.
- **No account.** No email, no signup, no auth, no telemetry tied to you.
- **Offline-capable after first visit** (PWA). Once you've loaded a tool, it caches; later sessions work without internet. For high-sensitivity files, run the tool once online to warm the cache, then disconnect before processing.

Compare with upload-based services: each transmits your file to a processing server. Even over HTTPS, each has logs, retention windows, and subpoena exposure. Loft has none of these because the server architecture does not include your file.

## More

- All tools: https://lofttools.com/tools
- Category: https://lofttools.com/tools/dev-tools
- LLM index: https://lofttools.com/llms.txt
