CSV to
JSON
Convert CSV data to JSON instantly. Supports custom delimiters, quoted fields, and header rows.
How It Works
Add CSV
Upload a CSV file or paste your CSV data directly.
Configure
Choose your delimiter and header row settings.
Get JSON
Copy or download the converted JSON instantly.
Convert CSV to JSON online with support for custom delimiters, quoted fields, and configurable headers. ConverterUp's CSV to JSON converter is built for analysts importing spreadsheets into APIs, developers seeding databases, and product managers turning exports from Notion or Google Sheets into structured data. Paste a CSV or upload a file, pick the delimiter and header options, and download the resulting JSON array or copy it to the clipboard. Parsing runs in your browser using a streaming RFC 4180 parser, so customer lists and confidential exports never reach a third-party server.
CSV quirks: RFC 4180, quoting, BOM, encoding
RFC 4180 is the closest thing to a CSV spec, but most CSV files in the wild deviate from it. The canonical rules: comma separator, CRLF line endings, double quotes around fields containing commas or newlines, and a literal double quote inside a quoted field is escaped as two double quotes ("").
BOM (byte order mark, EF BB BF for UTF-8) is added by Excel when saving CSV with UTF-8 encoding, and it routinely breaks naive parsers — the first column name becomes \uFEFFid instead of id. ConverterUp detects and strips the BOM automatically. If you are debugging a downstream parser, check whether the first column key has a hidden BOM prefix.
Encoding: Excel on Windows often defaults to Windows-1252 or UTF-16 LE, not UTF-8. Saving a CSV with accented characters from Excel and importing into a UTF-8-only API is the classic source of João mojibake. Convert to UTF-8 with BOM in Excel via Save As → CSV UTF-8, or open the file in a real text editor to confirm the encoding before parsing.
Line endings vary: Windows tools produce \r\n, Unix tools \n, old macOS \r. RFC 4180 says CRLF but every robust parser accepts all three. ConverterUp does — but if you are writing your own parser, do not assume a single line ending.
ToolSeo.csv-to-json.section1.p5
Header detection and nested JSON output
With headers enabled, the first row becomes the property names and each subsequent row is emitted as an object: [{"id":"1","name":"Ana"},…]. This is the standard format expected by most APIs. With headers disabled, each row is emitted as an array ([["1","Ana"],…]) — useful for positional data or when the CSV has no header line.
Column names are taken verbatim, including spaces and special characters. If you need camelCase or snake_case keys, run the headers through the case converter first or enable the Normalize headers option, which trims whitespace, lowercases, and replaces spaces with underscores.
Real CSV data is flat by nature; JSON consumers often want nested objects. ConverterUp supports a dot-path notation for headers: a column named address.city creates a nested { "address": { "city": "…" } } structure in the output. Use items[0].sku notation for nested arrays.
Type inference is opt-in. By default every value is a string, which preserves leading zeros (ZIP codes, phone numbers, SKUs) and avoids the JavaScript 0.1 + 0.2 float trap. Enable inference to detect numbers, booleans, ISO dates, and null markers automatically — useful when feeding a database that has typed columns.
ToolSeo.csv-to-json.section2.p5
Common conversion problems
Commas inside values: "Smith, John" must be wrapped in double quotes. If your source CSV has unquoted commas inside values (a frequent bug in hand-edited files and some legacy exports), every line will have a wrong column count. ConverterUp's auto-detect mode flags rows with inconsistent column counts and offers semicolon as a likely real delimiter.
Line breaks inside cells: multi-line values (e.g., addresses, comments) are valid CSV when wrapped in double quotes — the parser knows a \n inside "…" is part of the value, not a record separator. Pasting CSV into many text editors strips this distinction; always upload the file rather than copy-pasting through a UI that may normalize line endings.
Unescaped quotes: a value containing a literal " must double it ("He said ""hi"""). Some exporters use backslash escaping ("He said \"hi\"") instead, which is invalid RFC 4180 but common from non-CSV-native tools. Enable Lenient quote handling if your source uses backslash escapes.
ToolSeo.csv-to-json.section3.p4
ToolSeo.csv-to-json.section3.p5
ToolSeo.csv-to-json.section4.heading
ToolSeo.csv-to-json.section4.p1
ToolSeo.csv-to-json.section4.p2
ToolSeo.csv-to-json.section4.p3
ToolSeo.csv-to-json.section4.p4
ToolSeo.csv-to-json.section4.p5
ToolSeo.csv-to-json.section5.heading
ToolSeo.csv-to-json.section5.p1
ToolSeo.csv-to-json.section5.p2
ToolSeo.csv-to-json.section5.p3
ToolSeo.csv-to-json.section5.p4
ToolSeo.csv-to-json.section5.p5
Frequently asked questions
Which delimiters are supported?
Comma, semicolon, tab, pipe, and a custom field where you can type any single character. Auto-detect inspects the first lines and picks the delimiter that produces the most consistent column count.
How are quoted fields and escaped quotes handled?
ConverterUp follows RFC 4180: fields wrapped in double quotes can contain commas and newlines, and a literal double quote inside a quoted field is escaped as two double quotes. Excel and Google Sheets use the same rules.
What is the maximum CSV size?
Up to 50 MB per file. The streaming parser keeps memory usage low, so even files with hundreds of thousands of rows convert without crashing the browser tab.
Can I get an array of objects instead of arrays?
Yes. Enable the header option and the first row is used as JSON keys, producing an array of objects. Disable it to get an array of arrays, useful when the source has no header or you want positional access.
How are empty fields and missing values represented?
An empty field becomes an empty string (<code>""</code>) by default. Enable <em>Empty as null</em> to map <code>,,</code> to JSON <code>null</code> — preferred when feeding a database that distinguishes empty string from NULL. A row with fewer columns than the header gets missing trailing keys set to either <code>""</code> or <code>null</code> depending on the same toggle.
Why does Excel break my CSV when I save it back?
Excel re-encodes to the system default (Windows-1252 on Windows in many locales), strips the UTF-8 BOM, and reformats numbers and dates aggressively — a leading zero in a ZIP code becomes <code>00501</code> → <code>501</code>, an ISO date becomes a US date string. For round-tripping CSV through Excel safely, import via <em>Data → From Text</em> and explicitly set each column to <em>Text</em>.
ToolSeo.csv-to-json.q7
ToolSeo.csv-to-json.a7
ToolSeo.csv-to-json.q8
ToolSeo.csv-to-json.a8