Convert CSV to JSON
Turn a spreadsheet into JSON for an app, an API, a website build or an automation tool. The header row becomes the property names, values can be typed automatically, and you choose an array of objects or a plain grid. Excel files work too. Nothing is uploaded.
Drop files here or click to browse
Results
How to convert CSV to JSON
- Drop a CSV, TSV or Excel file.
- Choose array of objects (keys from the header row) or array of arrays.
- Decide whether numbers, booleans and blanks should be converted to JSON types.
- Run and download the .json file, pretty-printed or compact.
Why convert a spreadsheet to JSON
JSON is the format of the web. APIs return it, JavaScript reads it natively, no-code tools and automation platforms expect it, and configuration files, seed data and test fixtures are almost always written in it. Data, on the other hand, usually starts life in a spreadsheet, because that is where people are comfortable editing it. This tool bridges the two: a CSV or Excel file in, a clean JSON file out, with the column headers becoming the property names.
Two shapes of output
Array of objects is what almost everyone wants. The first row is treated as the header and every following row becomes an object with those keys:
[
{ "name": "Ada", "email": "ada@example.com", "plan": "pro" },
{ "name": "Grace", "email": "grace@example.com", "plan": "free" }
]
Array of arrays keeps the raw grid, header row included, with no keys. It is smaller and is the right choice when the header row is not clean, when column order matters, or when the consumer expects a table rather than records.
Numbers, booleans and blanks
With type conversion on, values that look like numbers become JSON numbers, "true" and "false" become booleans, and empty cells become null. With it off, every value is a string, exactly as it appeared in the sheet. Turn it off when you have identifiers that look numeric but must keep their leading zeros, such as postcodes, product codes and phone numbers.
Header rows and clean keys
Property names are taken from the header row exactly as written. Headers with spaces or punctuation, such as "First name" or "Price (USD)", are valid JSON keys but awkward in code. Rename the columns in the spreadsheet before converting if you want tidy keys like first_name and price_usd. Duplicate headers get a numeric suffix so that no data is lost.
Excel input
Drop an .xlsx or .xls directly; the first sheet is used. Dates are written as ISO strings (2026-03-14) rather than Excel's internal serial numbers, and formulas are replaced by their values.
Common uses
- Seeding a database or a prototype with realistic data from a spreadsheet.
- Feeding a list of products, locations or team members into a website build.
- Importing into automation tools such as Make, n8n or Zapier that want JSON.
- Creating test fixtures from a real export.
- Converting a lookup table for a mobile app.
Pretty-printed output is easy to read and diff; compact output is smaller for shipping. Both are generated in your browser, so the spreadsheet is never uploaded.
Frequently asked questions
Is my data uploaded?
No. The conversion runs in your browser and the file stays on your device.
How are the keys chosen?
From the header row, exactly as written. Duplicate headers get a numeric suffix. Rename columns in the spreadsheet first if you want tidy keys.
Will postcodes and phone numbers keep their leading zeros?
Switch type conversion off and every value stays a string. With it on, values that look like numbers become JSON numbers.
Does it work with Excel workbooks?
Yes. Drop an .xlsx or .xls and the first sheet is converted. Dates are written as ISO strings.
Your files never leave your device
Every tool on Squishly Tools is 100% free and runs entirely inside your browser. Your images and documents are processed on your own computer and are never uploaded to a server. There are no accounts, no watermarks and no catch.