Developer tools

CSV to JSON converter

Convert CSV into JSON with a table preview, editable column names and explicit value types. Keep leading zeros and large identifiers intact, with local file processing.

Paste CSV or import a UTF-8 file up to 1 MiB. Values stay as text unless you choose a type.

Import CSV or drop a file here

Your file stays on this device. Import supports Undo.

Blank records and missing cells

Quoted empty fields are kept. Extra fields are never discarded. Uneven rows need correction unless filling missing trailing cells is enabled.

Add CSV or try the example. No file is uploaded or saved automatically.

Convert without guessing your data types

Paste or import a CSV file and choose Convert CSV. Review the table to confirm the separator and column names, then download your JSON. All values start as strings, so an ID such as 001 stays "001" and a long integer is not rounded.

Open Column names and types when you want numeric or Boolean values, different JSON property names, or only selected columns. Number accepts JSON decimal/exponent syntax and preserves the literal text, including large values and negative zero. Leading plus signs, leading zeros, currency symbols and thousands separators are not JSON number syntax; retain those values as Text. Boolean accepts true/false in any letter case. Empty cells remain empty strings unless you select null, including in typed columns.

Headers and uneven records

With column names enabled, the first parsed record supplies the property names. Blank or duplicate names receive distinct suggestions that you can edit; no column is overwritten. Keys must be nonempty and unique for object output. Array output uses positional values and does not need property names. With headers disabled, every record is data and object output starts with editable column_1, column_2 names.

By default, completely blank physical records are skipped. A quoted empty value is retained. A final record terminator does not create an extra row. Rows with extra fields are rejected. The optional filling setting adds empty strings only for missing trailing cells, with the count shown before export.

CSV quoting and separators

Comma, tab, semicolon and pipe detection examines up to 32 records. An ambiguous guess asks you to choose explicitly; unusual separators can use one custom Unicode character. Inspect the table even when a separator is detected.

Double-quoted fields can contain separators and line breaks. A literal quote inside them uses two quotes: "Said ""hello""". A closing quote must be followed by a separator, record ending or end of input. Malformed quotes are rejected rather than silently repaired. CRLF, LF and CR record endings are supported; imported line endings inside quoted fields are retained until source editing. An initial UTF-8 BOM is treated as an encoding marker.

Keep and recover your work

Column settings are retained when a re-read has the same header mode and source column names. Import, example, clear and large paste support one Undo replacement, including previous column and parsing settings. Try example selects its matching comma/header settings; Undo restores your prior settings. Current JSON output options are retained. Ordinary typing clears that history. Changed source or settings hides stale JSON until conversion succeeds. Copy and Download always use complete output; the text preview stops at 32,768 characters.

Processing stays in your browser with no cloud fallback or automatic storage. Download before leaving. Input is limited to 1 MiB of valid UTF-8, 10,000 data rows, 200 columns and 200,000 parsed cells; JSON output is limited to 4 MiB. File reading and worker conversion each have a ten-second deadline and Cancel. NUL and isolated Unicode surrogates are rejected.

The strict quoting model is based on RFC 4180, with explicit support for other separators and record endings. This tool does not infer dates, locale-formatted numbers or nested objects from column-name punctuation. The JSON formatter can inspect or reformat the resulting document.