ARZENTIQ
DEVELOPER & DATA

CSV ↔ JSON Converter

CSV to JSON and JSON to CSV in the browser: RFC 4180 quoting, delimiter detection, header row, typed numbers and booleans, ragged rows reported — not uploaded.

A JSON array of objects from any CSV (or a CSV from any JSON array) with the delimiter, header, row and column counts stated, and every parsing choice — typing, missing cells, duplicate headers — explained rather than silent.

Example: A 3-row product CSV with a quoted "Widget, large" and a doubled-quote "Bolt ""M8""" becomes three objects with qty and price as numbers and an empty cell as null.

v0.1.0 · last reviewed 18 September 2026
Loading the workspace…
BUILT TO BE UNDERSTOOD

Flat rows,
nested objects.

How CSV is parsed, what typing does and does not convert, how JSON becomes rows again, and the cases where the two formats cannot represent each other.

Parsing CSV

The parser follows RFC 4180: fields are separated by the delimiter, a field in double quotes may contain the delimiter, line breaks and quotes doubled as "", and CRLF or LF end a record. The delimiter is detected as the most frequent of comma, semicolon, tab and pipe in the first ten lines — choose it explicitly when values contain that character unquoted. A stray quote or an unterminated quoted field is reported with its line rather than swallowed. A leading byte-order mark is removed.

Typing

CSV has no types; everything is text. With typing on, a cell becomes a number only when it is a strict decimal literal without leading zeros and within 2⁵³ (so "007", "00123" and long IDs stay strings), true/false become booleans, and an empty cell becomes null. The page counts how many cells were converted. Turn typing off to keep every value as a string — the safe choice for postcodes, phone numbers and anything with a leading zero.

JSON to CSV

An array of objects becomes a header of every key in first-seen order and one row per object, with missing keys as empty cells; an array of arrays becomes positional rows. A nested object or array cannot be a flat cell, so it is written as JSON text inside the cell and the page says how many. Fields with the delimiter, quotes, line breaks or surrounding spaces are quoted per RFC 4180.

What the tool does not settle

Spreadsheet exports vary: Excel may write a BOM and use the locale's list separator (semicolon where the decimal comma is used), and dates arrive as whatever text the sheet produced — the page keeps them as text. Encoding is assumed UTF-8. Files up to 5 MB are converted on your machine; nothing is uploaded. The same four anonymous usage counts as the rest of the site apply.

SOURCES

Last reviewed 18 September 2026. How results are checked: How we verify.