How to use it
- Paste your data into CSV text. Keep the names on the first line and leave First line holds the names ticked.
- Leave Separator between values on Detect automatically, or choose Semicolon (;) or Tab if the file uses them.
- Keep Convert numbers, true, false and null ticked to get numbers and booleans, or untick it to keep every value as text.
- 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
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format
Figures and text last checked on Tuesday, November 10, 2026.