ToolsForWeb

CSV / JSON Converter

Convert tabular data either way: CSV rows become JSON objects (or arrays when the first row is not a header), and a JSON array of objects becomes CSV with a header row. Commas, semicolons, tabs and pipes are auto-detected as the delimiter, quoted fields with embedded commas, quotes and newlines parse correctly, and numbers and booleans can be recognized automatically. Runs entirely in your browser.

Loading tool…

About this tool

Convert tabular data either way. CSV → JSON turns rows into objects using the first row as the header (or into plain arrays when it is not), with commas, semicolons, tabs and pipes auto-detected as the delimiter and an override when detection is wrong. Numbers and booleans are recognized automatically and can be kept as strings. JSON → CSV takes an array of objects, unions the keys across rows into a header, and serializes nested objects and arrays as JSON strings. Quoting follows RFC 4180: fields containing the delimiter, quotes or newlines are quoted and internal quotes are doubled, so spreadsheet round-trips survive.

When to use it

Turning a spreadsheet export into JSON an API or script can consume.
Flattening a JSON array of records into CSV for Excel or Sheets.
Cleaning up semicolon- or tab-separated exports from European or legacy tools.
Checking that tricky CSV — quoted commas, embedded newlines — parses the way you expect.

Questions

How does delimiter auto-detection work?

It counts commas, semicolons, tabs and pipes on the first non-empty line, ignoring anything inside quoted fields, and picks the most frequent. If nothing is found it falls back to comma. You can always override it manually.

Why did my 007 become a string?

Deliberately. Values with leading zeros look like numbers but usually are not — zip codes, phone parts, IDs — so the number recognizer only accepts plain integers and decimals without a leading zero. Untick "Convert numbers & booleans" to keep everything as text.

What happens to empty cells?

They become empty strings, never null, in both directions. A missing key in a JSON row becomes an empty CSV cell, and an empty CSV cell stays "" in the JSON output.

Related tools