Skip to main content

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

  1. Pick the direction: CSV → JSON or JSON → CSV with the switch toggle.
  2. Paste your data, or load the built-in sample to see the expected shape.
  3. Choose the delimiter — comma, tab, semicolon, or pipe — to match your file.
  4. Leave Has header row on to key objects by column name; turn it off to get generic col_1, col_2 keys.
  5. Toggle Auto type if you want "123"123 and "true"true; leave it off to keep every value a string.
  6. Copy the output, or download it as a .json / .csv file.

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 valueJSON outputRule
123123Safe integer (≤ 253-1)
3.143.14Decimal number
true / True / TRUEtrueBoolean (3 casings)
null / NULL / (empty)nullNull 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.

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.

Browse all tools