JSON Tools

CSV to JSON Converter

Convert CSV rows into a JSON array of objects, with correct handling of quoted fields, embedded commas, and empty values.

Use the tool ↓

Your data is processed locally in your browser and is not uploaded to our servers.

CSV input
CSV
JSON output
Paste or upload CSV to convert.

About this tool

CSV looks simple — commas separate values, newlines separate rows — right up until a value itself contains a comma, or spans multiple lines, or needs to include a literal quote character. The CSV format handles all of that through quoting: a field containing a comma, quote, or newline gets wrapped in double quotes, with any quote inside it doubled to distinguish it from the field's enclosing quotes. A parser that just splits on commas and newlines without honoring this rule will silently produce wrong results the moment it hits a quoted field with a comma inside — splitting one logical value into two, or merging two rows into one.

This tool implements full quote-aware parsing, character by character, rather than a naive split — tracking whether it's currently inside a quoted field and handling doubled quotes ("" inside a quoted field means a literal ") correctly. That's what lets it handle values like "Smith, John" or "He said ""hello""" as single fields rather than corrupting them, which is the single most common failure mode of quick-and-dirty CSV parsers.

The first row is treated as the header row, and its values become the property names of every resulting JSON object — so a CSV with columns name,age,city produces objects with exactly those three keys, one object per data row. One thing worth being explicit about: every value in the resulting JSON is a string, since that's genuinely all CSV can represent — there's no way to distinguish the number 30 from the text "30" in plain CSV. If your downstream use needs actual numbers or booleans, that conversion happens after this step, deliberately left to you rather than guessed at, since a heuristic guess could easily turn a string like a phone number or zip code with a leading zero into an incorrect number.

Empty values in a row (two commas with nothing between them) convert to empty strings in the resulting JSON, matching what an empty CSV cell actually represents. Everything runs locally in your browser — nothing you paste or upload is sent to a server.

How to use it

01

Paste or upload CSV

The first row is treated as column headers.

02

Review the JSON output

Each data row becomes one object; column headers become the keys.

03

Copy or download

Copy the JSON array directly, or download it as a .json file.

Example

CSV
name,age,city
John,30,Delhi
Jane,28,Mumbai
JSON
[
  { "name": "John", "age": "30", "city": "Delhi" },
  { "name": "Jane", "age": "28", "city": "Mumbai" }
]

Common use cases

Importing spreadsheet data into an app

Convert a CSV export into JSON your application can consume directly.

Preparing API test data

Turn a spreadsheet of test cases into a JSON fixture.

Seeding a database

Convert a CSV data dump into JSON records for a seed script.

Migrating from CSV-based tools

Move data from a spreadsheet workflow into a JSON-based one.

Debugging CSV exports

Check that a CSV export parses the way you expect before using it.

Quick data transformation

Convert CSV to JSON as a first step before further JSON tooling (formatting, diffing, schema checks).

Frequently asked questions

Related tools

Related articles