CSV to JSON Converter

Paste CSV with a header row, or without one. You get a JSON array with one object per row, numbers and true, false or null converted, ready to copy or download as data.json.

Free Runs in your browser Checked Tuesday, November 10, 2026

Rows separated by line breaks. A field with a comma, a quote or a line break goes in double quotes. Up to 2,000,000 characters.

Auto finds the separator from the first lines. Choose one yourself if the file is unusual.

Untick it if the first line is data. The names will then be column1, column2 and so on.

Turns 92 into a number and true into a boolean. Text such as 007 stays text.

Result

Validity — Valid CSV with the separator found, or the line of the first problem.
Rows converted — Rows without the header line.
JSON array

This tool runs in your browser. What you enter is not sent to us.

How to use it

  1. Paste your data into CSV text. Keep the names on the first line and leave First line holds the names ticked.
  2. Leave Separator between values on Detect automatically, or choose Semicolon (;) or Tab if the file uses them.
  3. Keep Convert numbers, true, false and null ticked to get numbers and booleans, or untick it to keep every value as text.
  4. Read Validity. If it names a line, fix that line. Then copy the JSON array or download it as data.json.

How the CSV is read

CSV is described by RFC 4180. Each line is a record, and the fields of a record are separated by one character, usually a comma. A field that holds the separator, a line break or a double quote is wrapped in double quotes, and a double quote inside such a field is written twice. The reader follows these rules, so a comma inside "Mehmet, Ali" does not split the name.

Blank lines are skipped. Lines may end with CRLF or LF. A byte order mark at the start, which Excel writes into some files, is ignored.

  • Every line must have the same number of fields as the first line. A line that differs stops the conversion and is named, so no value is dropped or moved into the wrong column.
  • Without the first line as names, the columns are called column1, column2 and so on. An empty name is also column plus its number, and a repeated name gets _2, _3 at the end.
  • A number is converted only when its digits all survive the conversion, so 12345678901234567890 stays text. 007 stays text because a leading zero is not part of a JSON number.

Separators and decimal commas

Auto looks at the first lines and picks the separator that gives the same number of fields in most lines. Ties go to comma, then semicolon. When a file is unusual, choose the separator yourself.

Only a dot is a decimal point in a JSON number. In a semicolon file that a Turkish Excel saved with a decimal comma, a value such as 1,5 is kept as text, so it does not turn into 15 or a wrong number. Replace the comma with a dot first if you need a number.

Worked example: the default CSV

The default text has a header and two rows. The first row has no quotes. The second row has a name with a comma, so the name is in double quotes. Both codes start with 0, so they stay text.

The score column becomes numbers, 92 and 85, and the code column keeps 007 and 010 as text. The result has two objects, so the row count is 2.

Field First row Second row
name Ayşe Mehmet, Ali
score 92 85
code 007 010

Frequently asked questions

Why does the converter give me an error about a line?

The error names the line where the problem starts. Common causes are a quoted field that is never closed, a comma inside a value that is not in quotes, or a row with more or fewer fields than the first line.

Why is my number still text?

A value stays text when it has a leading zero, such as 007, when it has more than 15 significant digits, or when it uses a comma as the decimal point, such as 1,5. Those values are kept exactly as they were written.

Why does 19.90 come out as 19.9?

A JSON number has no trailing zeros, so 19.90 is written as 19.9. It is the same number; if you need the two digits, untick Convert numbers, true, false and null.

Does the converter handle a file that Excel saved?

Yes. Some Excel exports start with a byte order mark, and Excel uses the semicolon as separator in Turkish and many European settings. The mark is ignored and the separator is found automatically.

What if my CSV has no header row?

Untick First line holds the names. The columns are then named column1, column2 and so on, and every line becomes an object with those names.

Is my CSV uploaded anywhere?

No. The conversion runs in your browser, and nothing you paste is sent to our server.

Sources

Figures and text last checked on Tuesday, November 10, 2026.

We use necessary cookies to run the site. With your consent, Google also uses advertising cookies to show personalised ads. If you reject them, you still see ads, but they are not personalised.