Convert CSV to JSON
Turn a CSV table into a JSON array of objects, with quoted fields and embedded commas handled properly. Runs in your browser.
Runs entirely in your browser — nothing is uploaded
2
Rows
3
Columns
[
{
"id": 1,
"name": "Ana",
"active": true
},
{
"id": 2,
"name": "Bob",
"active": false
}
]Quoted fields are the whole problem
Splitting a CSV on commas works until a field contains one, which in real data is immediately. "Smith, John" is one field, not two, and a converter that gets this wrong shifts every column after it.
This reads the text character by character rather than splitting it, so quoted fields can hold commas, line breaks and escaped quotes without breaking the row. Try it with a name that has a comma in it — that is the test worth running on any CSV tool before trusting it.
Why 007 stays text
With type conversion on, 1 becomes a number and true becomes a boolean. But 007 stays a string, and that is deliberate.
A leading zero almost always means an identifier — an order number, a product code, a postcode — and turning it into a number destroys it silently. This is the single most common way a spreadsheet import corrupts data, and it is worth being conservative about.
Separators other than commas
The C in CSV is not always a comma. Exports from European spreadsheets frequently use semicolons, because the comma is the decimal separator there. Tab-separated files are common from databases.
Pick the one your file actually uses. If the preview comes out as a single column, you have almost certainly chosen the wrong separator rather than found a broken file.
Nothing is sent anywhere
Everything on this page happens in your own browser. No request is made, nothing is stored between visits, and the page keeps working with the connection switched off.
Frequently asked questions
Does the first row have to be a header?
No. Turn the header option off and the columns are named column1, column2 and so on. It is on by default because most CSV files do carry a header row.
What happens to empty cells?
With type conversion on they become null, which is what a missing value means in JSON. With it off they stay as empty strings, which is what they literally were in the file.
Is there a size limit?
Only your device's memory. The file is never uploaded, so there is no server limit to run into — but a very large file is parsed in one pass in the tab, so expect a pause on tens of megabytes.
Is my data sent anywhere?
No. The conversion happens in this tab. That matters more than usual for CSV, which is very often an export of customer or financial records.