CSV to JSON Converter — Free, Bidirectional, In-Browser
Paste CSV to get a JSON array of objects, or paste a JSON array to get RFC 4180 CSV. Quoted fields, doubled-quote escapes, embedded newlines, and four delimiters are handled, with optional type inference. Free, no signup, and 100% client-side.
Two-Way Conversion
Switch direction with one click. CSV becomes a clean JSON array of objects; JSON arrays become RFC 4180-compliant CSV with proper escaping.
RFC 4180 Correctness
Quoted fields, escaped quotes ("" → "), embedded newlines, custom delimiters (comma, tab, semicolon, pipe). The hard edge cases other converters silently mangle — handled.
Smart Type Inference
Opt in to convert "123" → 123, "true" → true, and empty → null. Or keep everything as strings to preserve the source verbatim — your choice.
100% Client-Side
Parsing happens in your browser. CSV/JSON payloads — even gigabytes of analytics export — never touch our servers. Safe for HR data, financials, and PII.
CSV to JSON Converter: turn spreadsheet rows into a JSON array (and back)
A CSV to JSON converter reads comma-separated rows and outputs a JSON array of objects, one object per row keyed by the header. This tool goes both ways: paste JSON to get RFC 4180 CSV back. It handles quoted commas, doubled-quote escapes, embedded newlines, and four delimiters, with optional type inference. It runs 100% in your browser — free, no signup, no upload.
How to convert CSV to JSON
- Pick the direction: CSV → JSON or JSON → CSV with the switch toggle.
- Paste your data, or load the built-in sample to see the expected shape.
- Choose the delimiter — comma, tab, semicolon, or pipe — to match your file.
- Leave Has header row on to key objects by column name; turn it off to get generic
col_1,col_2keys. - Toggle Auto type if you want
"123"→123and"true"→true; leave it off to keep every value a string. - Copy the output, or download it as a
.json/.csvfile.
How CSV and JSON differ, and what the spec says
CSV is a flat, row-and-column text format defined by RFC 4180, which registers the text/csv MIME type. JSON is a hierarchical key-value format defined by RFC 8259 / ECMA-404. CSV is denser because column names are stored once in the header; JSON repeats keys per object but supports nesting, arrays, and real types.
The escaping rules are where conversions break. RFC 4180 says any field containing a comma, double quote, or line break must be wrapped in double quotes, and a literal double quote inside that field is escaped by doubling it. This parser implements both rules exactly, so a value like "Park, Min" stays one field and "She said ""hi""" decodes to She said "hi".
"If double-quotes are used to enclose fields, then a double-quote appearing inside a field must be escaped by preceding it with another double quote."— RFC 4180, §2, rule 7
Need to compare these formats against YAML and XML before you commit to one? Read our JSON vs YAML vs XML guide, and for valid-JSON rules see the JSON validation & formatting guide.
Worked examples: CSV → JSON
Basic row · auto type on
id,name,active
1,Alex Rivera,true
→ [{ "id": 1, "name": "Alex Rivera", "active": true }]
Comma inside a quoted field
id,name
3,"Sara Khan, US"
→ [{ "id": 3, "name": "Sara Khan, US" }] — one value, not two
JSON → CSV · nested object
[{ "id": 1, "meta": { "tier": "pro" } }]
→ id,meta / 1,"{""tier"":""pro""}" — the nested object is JSON-stringified into one quoted cell
Edge case · big integer ID
With auto type on, 1234567890123456789 (19 digits) is kept as a string, not a number. It exceeds Number.isSafeInteger (253-1 = 9007199254740991), and coercing it would silently round it. Snowflake IDs and large account numbers survive intact. ZIP codes with leading zeros also stay strings — turn auto type off to guarantee it for every field.
Type inference reference
With Auto type enabled, this is exactly how each CSV string is coerced. Anything not matching a rule below stays a string.
| CSV value | JSON output | Rule |
|---|---|---|
| 123 | 123 | Safe integer (≤ 253-1) |
| 3.14 | 3.14 | Decimal number |
| true / True / TRUE | true | Boolean (3 casings) |
| null / NULL / (empty) | null | Null or empty cell |
| 01730 | "01730" | Leading zero → stays string |
| 12345678901234567890 | "12345678901234567890" | Exceeds safe integer → string |
Two behaviors most converters get wrong
Ragged rows keep all their columns. When converting JSON to CSV, the header is the union of every key across all rows in first-seen order — not just the first object's keys. If row 1 has id, name and row 5 adds email, you get all three columns; missing cells are emitted empty. Naive converters read only the first row's shape and silently drop later fields.
A quote mid-field is treated literally. RFC 4180 only assigns special meaning to a double quote at the start of a field. So 5" in length,5" pipe is read as the literal text 5" pipe, not a malformed quoted field — matching how Excel handles stray quotes, so your data round-trips instead of erroring.
Runs 100% in your browser
Your data never leaves your device. Every step — parsing, type inference, escaping, and download — runs locally in JavaScript, so the tool is safe for HR exports, financial reports, and other PII, and works offline once the page loads. I tested it round-tripping the built-in sample (commas inside quotes, doubled quotes, booleans) plus 19-digit IDs and ragged rows across all four delimiters with auto type on and off. Output stays correct in both directions.
Frequently asked questions
Is this CSV to JSON converter free?
Yes — 100% free with no signup and no usage cap. Convert in either direction as often as you like.
Is my data uploaded anywhere?
No. Conversion runs entirely in your browser, so your CSV and JSON never touch a server. It also works offline after the page loads.
Will large integer IDs lose precision?
No. Type inference only coerces numbers within Number.isSafeInteger (253-1). A 19-digit snowflake ID stays a string, avoiding silent rounding.
Does it support TSV and semicolon files?
Yes. Pick the Tab delimiter for TSV or Semicolon for European-locale exports; all RFC 4180 quoting and escaping rules still apply.
Related data & conversion tools
Validate & pretty-print the JSON output
JSON DiffCompare two converted JSON files
JSON Schema GeneratorInfer a schema from your JSON array
JSON to TypeScriptGenerate typed interfaces from rows
JSON / YAML ConverterConvert JSON to YAML and back
YAML ValidatorCheck YAML syntax against the spec
XML FormatterIndent and validate XML payloads
SQL FormatterFormat the queries that load your data
Case ConverterNormalize column names (snake ↔ camel)
Markdown Table GeneratorTurn CSV rows into a Markdown table
Base64 EncoderEncode data for transport or embedding
All ToolsBrowse the full toolk utility hub
Last updated: June 2, 2026 · Runs 100% in your browser — no uploads, nothing leaves your device.
Need a different tool?
Browse all 89 free, in-browser tools — or tell us what we should build next.