Tools

Data tool

CSV to JSON converter

Paste CSV or choose one local CSV file to turn rows into JSON objects or arrays. Parsing happens locally in the browser, including quoted fields and escaped quotes.

Input

CSV source

Output

JSON result

Header rows

Keep the header option on when the first row contains column names. Headers are trimmed, lowercased, and changed to safe keys: `Customer Name` becomes `customer_name`, a blank header becomes `column_2`, and a repeated key receives a suffix such as `_2`. Check the normalized keys before using the JSON in an API or import job.

Array mode

Turn the header option off when the file has no header row or when column position matters more than names. A row such as `Ada,admin,true` becomes an array of three strings in the same order. Quoted commas, escaped double quotes, and line breaks inside quoted fields stay inside their field instead of creating extra columns or rows.

Limitations

CSV has no universal schema, so every cell remains a string: `42`, `true`, and `2026-07-16` are not guessed as a number, boolean, or date. Auto-detection compares comma, semicolon, and tab counts; choose the delimiter manually when free text contains many of those characters. Nested objects and spreadsheet formulas are not evaluated.

Privacy

CSV is parsed locally by JavaScript in this page, whether you paste text or choose one file. The tool does not upload the file, store its rows, or send its contents to a server. After conversion, review sensitive columns before copying the JSON into another service, because that destination has its own data-handling rules.

Convert CSV text into JSON. Choose header objects or raw arrays, and set the delimiter to auto, comma, semicolon or tab. The parser handles quotes, doubled quotes, and CR/LF normalization. Entirely blank rows are dropped.

Verified example

Input:

name,city
모듈,"서울, 강남"

Header mode yields an object with name and city where city is 서울, 강남. Array mode yields a two-dimensional array including the header row. A Hangul-only header row such as 이름,도시 becomes keys column_1 and column_2 after ASCII normalization—that is intentional.

Header normalization pipeline

  1. Trim and lowercase
  2. Replace non [a-z0-9] runs with _
  3. Strip edge underscores
  4. Fall back to column_N when empty
  5. Suffix _2, _3 on collisions

So User Name becomes user_name. Prefer English headers when downstream code expects stable keys.

Operator checklist

Confirm encoding before conversion; mojibake cannot be fixed here. Prefer the text import path in spreadsheets so phone numbers keep leading zeros. If auto-detect picks the wrong delimiter, set it manually. Unclosed quotes abort with a clear error.

For encoding background see the Korean CSV guide on the site; for JSON cleanup open the JSON formatter or the workbench.

End-to-end dry run

  1. Export UTF-8 CSV (BOM optional but helpful for Excel users).
  2. Open the file in a text editor and copy a header plus two data rows.
  3. Paste here, confirm delimiter, convert with headers.
  4. Inspect key names. If you see column_N, rename headers to ASCII or switch to array mode.
  5. Pretty-print the JSON in the JSON formatter before shipping the fixture.

Leading zeros in phone numbers die in spreadsheets, not in this converter. Fix cell formats upstream. Prefer explicit delimiters in automation; auto-detect is for exploratory paste sessions.

Array mode is the escape hatch for messy headers and for files that are really grids without semantics. Map columns in application code when Unicode headers must survive as display labels rather than object keys.

Delimiter field notes

European exports often use semicolons because the comma is a decimal mark. TSV appears when fields themselves contain many commas. Auto-detect looks only at the first handful of non-empty lines; a wide prose cell with commas can confuse it, which is why manual selection exists.

Completely empty rows disappear from the output. Short rows pad missing cells with empty strings so object keys still align. That padding is visible in JSON as "" values—decide whether your consumer wants blank strings or omitted keys before you ship.

If you are validating a vendor file, keep a golden sample next to the parser tests and re-paste it here whenever the vendor changes quoting rules. Five minutes of manual confirmation beats an hour of production firefighting.

FAQ

Why did a Hangul header become column_1?

Header mode keeps only ASCII letters and digits in keys. Hangul-only headers become column_N. Use array mode if you must preserve non-ASCII header text as data.

How does auto delimiter detection work?

It scores comma, semicolon and tab on the first non-empty lines and picks the highest count. Ties prefer comma.

Are commas inside quotes safe?

Yes. Quoted fields may contain commas. Escape a literal quote by doubling it.

Is the file uploaded?

No. Paste or local file read stays in the browser.