ctrlcat tools
/ CSV to JSON Converter

Data

CSV to JSON Converter

Turn pasted CSV or spreadsheet rows into JSON, and convert JSON records back into CSV. Headers and quoted fields are handled for you.

Separator

What this is

Spreadsheets and databases like to hand you rows of comma-separated text. Most web tools and apps want the same information as JSON instead. Moving between the two by hand is slow and easy to get wrong.

This tool does the conversion both ways. Paste CSV and you get a JSON array of records, one object per row, with the first line used as field names. Paste JSON and you get CSV back, with the column headers collected from your records. Everything runs in your browser, so your data stays on your own machine.

Where this is useful

You exported a list from a spreadsheet and need it as JSON to seed a test database.

You received an API response as JSON and want to open it in a spreadsheet to sort and filter.

You have a CSV with quoted fields that contain commas, and you want them read correctly instead of split apart.

You want to check how many rows and columns a pasted file really has before sending it on.

How to use this tool

Choose a direction at the top: CSV to JSON, or JSON to CSV.

Paste your data into the input box. For CSV, keep the header row as the first line if your file has one.

Pick the separator if your file uses something other than a comma. Tab works for data copied straight out of a spreadsheet.

For CSV input, you can also turn off the header row. Fields are then named by position instead.

Press Convert. The result appears below, along with a count of rows and columns. Use the copy button to take the result with you, or Clear to start over.

Frequently asked questions

Is my data uploaded anywhere? No. The conversion happens inside your browser, so nothing is sent to a server. You can paste data you would not want to share with an online service.

What happens to quoted fields and line breaks? Quoted fields are read as a single value, even when they contain the separator, a line break, or a double quote written twice. When converting back to CSV, any value that needs quoting is quoted for you.

Why do some rows have empty fields in the JSON? If a row has fewer values than the header row, the missing fields come out as empty strings so every record has the same shape. Extra values beyond the header are given numbered names.

Does it keep numbers as numbers? CSV has no types, so values become strings by default. Turn on number and boolean detection and plain numbers, true, and false are converted to real JSON values instead.