Free · No sign-up

CSV ↔ JSON

Convert CSV to JSON or JSON to CSV locally. CSV values stay strings; use headers, rectangular arrays or flat records with matching fields.

Local processing · Inputs are not uploaded

All CSV values stay strings, including empty values, leading zeros and large integers; no type inference. Only comma delimiters are supported. An initial BOM is removed.

Load an example before converting.

Repeated JSON keys keep the last value; check the source first. Numbers use JavaScript precision; represent exact numbers as strings.

JSON must be a rectangular 2D array or flat records with matching fields. Nested values are unsupported; null becomes an empty field, numbers and booleans become text. Write large integers as strings.

Formula protection adds an apostrophe to fields starting with =, +, -, @, tab or carriage return. Disable it for exact data. CSV downloads include a UTF-8 BOM.

Limits: 1 MiB input, 20,000 rows, 500 columns, 4 MiB output. Processing stops after 8 seconds. Everything stays in your browser.

How to use

  1. Choose a direction and paste content or select a UTF-8 file. CSV uses commas; enabled headers must be nonempty and unique.
  2. CSV to JSON does not infer numbers: 001 stays a string. Disable headers for arrays of arrays. JSON to CSV accepts rectangular arrays or flat object arrays with matching fields; nested values are rejected.
  3. Convert, review and download. JSON null becomes an empty field; numbers and booleans become text. Default formula protection may add an apostrophe. Write large integers as strings.

Example

name,id
Ana,001

With headers: [{"name":"Ana","id":"001"}]. Without headers: [["name","id"],["Ana","001"]]. Nested JSON records such as [{"user":{"id":1}}] cannot be converted to CSV.

Related tools