Skip to content
Conversion Hub

csv → json

Convert CSV to JSON Online

Turn CSV into clean, pretty-printed JSON with a live two-pane editor.

  • No uploads, ever
  • Converts in milliseconds
  • Works offline
  • Batch support

APIs want JSON; spreadsheets produce CSV. This converter bridges the two instantly. Paste or upload a CSV on the left and watch valid, indented JSON appear on the right as you type. Parsing runs entirely in your browser, so customer records, revenue figures and internal data never travel anywhere — a genuine advantage when the CSV contains personally identifiable information.

100% client-side — your files never leave your device

Conversion runs locally in your browser using Canvas and WebAssembly. There is no upload step, no server processing and no file storage. Disconnect from the internet and this page still works.

Loading converter…

Step by step

How to convert CSV to JSON online

  1. Add your .csv file

    Drag and drop your file into the box above, or click it to browse your device. Add several at once and they convert together as a batch.

  2. Choose your output settings

    Everything is configured automatically — the default settings produce an optimal .json for almost every use.

  3. Download the .json

    Click Download to save the result straight to your device. The whole process took a fraction of a second because nothing was uploaded or downloaded.

Side by side

CSV vs JSON

Here is how the two formats differ. Use it to decide whether converting is worth it, and which one to pick if you have a choice.

Comparison of CSV (Comma-Separated Values) and JSON (JavaScript Object Notation)
AttributeCSV.csvJSON.json
Full nameCSV (Comma-Separated Values)JSON (JavaScript Object Notation)
CompressionText-basedText-based
TransparencyNoNo
Browser supportUniversalUniversal
File sizeTextText
Best forSpreadsheet and database exchangeAPIs, configs and web apps

The guide

Getting the most out of CSV to JSON conversion

Handling the awkward parts of real CSV

CSV looks simple but is genuinely fiddly. Papa Parse, the parser behind this tool, correctly handles quoted fields containing commas and newlines, escaped double quotes, and mixed line endings (CRLF, LF, and bare CR from old Mac exports). Delimiter auto-detection recognises comma, semicolon, tab and pipe delimiters, so European CSVs exported with semicolons parse correctly without any configuration. If a file is mis-detected, set the delimiter manually in the settings panel.

Type detection and what it changes

By default values are converted to their natural type: `123` becomes a number, `true` and `false` become booleans, and `null` becomes null rather than the string "null". This is almost always what you want for API payloads. Disable type detection if your identifiers contain leading zeros — a zip code of `01234` will otherwise become the number `1234` and lose the leading zero, which is a common and annoying data bug.

Nested JSON from flat CSV

If your API expects nested objects — `{"user": {"name": "Ada"}}` rather than `{"user.name": "Ada"}` — the quickest route is to post-process the output. CSV is inherently flat, so genuine nesting has to be expressed either in your headers using dot notation or built afterwards in code. Keep the headers simple if you can: most APIs and databases prefer flat keys precisely because CSV cannot represent hierarchy.

Common questions

Frequently asked questions

Everything about how this converter handles your files, and how to get the best result.

Are my CSV uploads safe?
Completely. The file is read locally and parsed in your browser with Papa Parse. There is no upload step, so a CSV full of customer names, emails or financial records never leaves your machine.
How do I handle a large CSV without the page freezing?
Papa Parse streams the parse rather than building intermediate copies, so files of many megabytes convert in well under a second. Very large files are best uploaded from the File button rather than pasted, to avoid browser clipboard limits.
Why did my numbers lose their leading zeros?
Type detection turned `01234` into the number `1234`. Turn off "Detect data types" in the settings panel if your identifiers such as zip codes or phone numbers must stay as text.
How do I convert a semicolon-separated European CSV?
It usually works automatically — the parser detects semicolons as the delimiter. If the output looks wrong, select ";" explicitly in the delimiter settings.