CSV to JSON Converter

Convert CSV to JSON with control over headers, delimiters and value types.

Convert CSV to JSON in Three Steps

  1. Add CSV data. Paste text or choose a supported CSV or delimited file.
  2. Confirm the parser settings. Check the delimiter, header row, empty-value behavior and type detection.
  3. Preview and export. Review parsed rows, then copy or download formatted JSON.

Detect the CSV Structure

Delimiter

The tool attempts to detect common delimiters: comma, semicolon, tab and pipe. Detection remains editable. A file containing many commas inside quoted text can confuse automatic detection, and regional exports often use semicolons.

The preview shows the selected delimiter and the detected number of columns before conversion.

Header Row

When the first row contains field names, each following row can become a JSON object.

id,name,status
1,Ada,active
2,Lin,paused

Suggested output:

[
  {"id": "1", "name": "Ada", "status": "active"},
  {"id": "2", "name": "Lin", "status": "paused"}
]

When no header exists, you can output arrays of arrays, generate keys such as column_1 or enter custom field names.

Parse Quoted Fields Correctly

A CSV field may contain the delimiter, a line break or literal quotes when it is quoted correctly.

name,notes
"Ada","Uses commas, quotes, and
multiple lines"

The parser keeps the entire notes value in one field and decodes escaped quote pairs inside quoted values.

Choose the JSON Output Shape

Array of Objects

Use the header row as object keys. This is the default for APIs, application imports and most developer workflows.

Array of Arrays

Keep every row as a positional array. This is useful when the CSV has no header or when duplicate headers should not become object keys.

Wrapped Object

An optional root key can produce:

{
  "records": [
    {"id": "1", "name": "Ada"}
  ]
}

The root key must be entered explicitly. The tool does not invent a semantic collection name.

Control Data Types

CSV has no universal type metadata. The safest default keeps all cell values as strings.

  • Preserve all values as strings — the default, so identifiers such as 00123 keep their leading zeros.
  • Detect numbers and booleans — converts numeric text to JSON numbers and true/false to booleans.
  • Empty cell handling — keep an empty string or emit null.

Rebuild Nested Objects from Headers

An optional dot-path mode converts headers such as address.city and address.country into nested JSON.

{
  "address": {
    "city": "London",
    "country": "UK"
  }
}

This mode is disabled by default because a literal column name can contain a period. Users control whether dots mean nesting.

Preview Parsing Before Export

The preview displays the detected delimiter, header status, row and column count, malformed-row warnings, duplicate or blank header warnings, a small source-table preview and formatted JSON output.

Common CSV to JSON Problems

A name containing a comma creates extra fields

The field must be quoted in the source CSV. The parser respects quoted delimiters and reports malformed quoting.

Rows contain different numbers of columns

The file is irregular or the wrong delimiter was selected. The output shows which rows differ; missing values are padded and extra values are kept by default.

Leading zeros disappear

Disable numeric type detection for identifier columns. A value such as 00123 is often an ID, not the number 123.

The first data row became property names

Turn off “first row is header.” Use array output or provide custom keys.

Empty cells should become null

Select the empty-value policy before conversion. The preview distinguishes "" from null.

Review Large Files Before Conversion

For large or complex files, start with a representative sample and review the generated output before relying on it.

CSV to JSON FAQ

Does the converter handle commas inside a value?

Yes, when the value is correctly quoted. The parser treats delimiters inside quoted fields as content.

Can it parse semicolon or tab-separated files?

Yes, if the delimiter is detected or selected. The selected delimiter is visible in the options panel.

Does the first row have to be a header?

No. You can use the first row as keys, generate column names or output an array of arrays.

Will numbers remain numbers?

Only when type detection is enabled. Keeping values as strings is safer for identifiers and values with leading zeros.

Can dotted headers create nested JSON?

Yes, through the optional nested-key mode. Keep it disabled when periods are literal parts of the column names.

Is the CSV uploaded?

Yes. All conversion inputs, including pasted text, are sent to the SolConverter API and storage for processing. Pasted text is uploaded unchanged as text.