CSV to JSON
Paste or drop a CSV and read the JSON straight away. The conversion runs inside your browser, so nothing is uploaded. Convert one file or a whole batch at once, let the delimiter be detected for you, and keep values as text by default so a leading zero or a version number is never quietly changed.
100% private. Your CSV is converted entirely in your browser and never uploaded.
Why convert CSV with frisqoo
100% private
CSV files hold customers, orders and payroll rows. Yours is converted in your browser and never uploaded.
Rows become objects
The header row turns into keys and each row into a tidy JSON object, ready for any script or API.
One file or many
Drop a single CSV or a whole batch. Each file is converted on its own and handed back, or download them all as a zip.
No silent damage
Values stay text unless you ask, so leading zeros and versions like 1.10 are never mangled.
No internet needed
Once this page has loaded, the conversion itself runs with no connection at all.
Any device
Runs in any modern browser on a phone, tablet or computer. Nothing to install.
How to convert CSV to JSON
- Paste your CSV, tap Load sample, or drop one or more files onto the upload area.
- Leave the delimiter on Auto-detect, keep First row is a header on, and choose Indented or Minified.
- Tap Copy result or Download, or for a batch download every file at once as a zip.
Everything runs on your device, so it is fast and your data stays private, even with no internet once the page has loaded.
Why convert CSV to JSON?
CSV is what a spreadsheet gives you when you export it, and it is how most systems hand over a table of data. It is simple and it is everywhere. JSON is what almost every modern API, script and front end wants to read instead, because it carries the shape of the data along with the values. So turning one into the other is a small job that turns up all the time, and it is dull to do by hand.
The useful part is doing it without surprises. A good converter keeps every value exactly as it was, reads quoted fields properly, and tells you plainly when a file is not what it claims to be. That is what this page is built to do.
How rows and headers become JSON
With the header option on, the first row is read as the names of the columns. Every row after it becomes one object, and each cell sits under the name of its column. A file of three data rows gives you a list of three objects, which is exactly the shape most code wants to loop over.
Turn the header option off when the file has no header of its own. Each row then becomes a plain list of values in the order they appear, so nothing is invented and no cell is mislabelled. Blank lines are skipped either way, so a stray empty row at the end of a file never becomes an empty entry.
Convert a whole folder at once
Most CSV work is not one file, it is a stack of them: a month of exports, a report per region, a file per client. So you can drop many files onto the upload area, or pick them all in one go. Each file is converted on its own and named after the file it came from, with a .json ending in place of the old one.
When the batch is done you can save each result on its own, or download the whole set as a single zip. Files are never merged, so ten CSV files give you ten JSON files. If one file in the set cannot be read, it is flagged on its own and the rest still convert, so one bad file never sinks the whole job.
Why are numbers text unless you ask?
Because guessing here destroys real data. A postcode with a leading zero becomes a smaller number. A phone number loses its leading zero entirely. An order reference like 007 becomes 7. A version like 1.10 becomes 1.1, which is a different version. Every one of those is a real bug that has shipped somewhere because a converter was helpful without being asked.
So the default is to leave every value exactly as the CSV had it. When you know your values are truly numeric, tick the option. Numbers and true or false then become real JSON types, while anything that would change on the trip, like 0042 or 18.50, stays as text. That way the output is safe to trust.
Which delimiter, and what about quotes?
Auto-detect looks at the first row and picks the separator that splits it most cleanly, which is right almost every time. Files from other countries often use a semicolon, and exports from some tools use a tab or a pipe, so you can set any of those by hand when you want no guessing at all.
Quoted fields are read the way the format intends. A value wrapped in quotes can hold the delimiter itself, a line break, or quote marks of its own, and it is still read as one field rather than split in two. That is what keeps an address with a comma in it, or a note that runs onto a second line, in one piece.
Is it safe to paste private CSV here?
Yes, and it matters more here than for most tools. The CSV people need to convert is rarely a toy file: it is a real customer export, a payroll run, a list of orders, or a statement from a bank. Many free converters post whatever you upload to their own server, which means all of that ends up in someone else’s logs.
This page parses and converts in your browser, so the file never leaves your device. For related work that runs the same way, tidy your output with the JSON minifier, convert markup with XML to JSON, or see the rest of the developer tools.
FAQs about CSV to JSON
Is my CSV uploaded to a server?
No. The conversion runs inside your browser on your own device. CSV files often hold customer lists, orders, payroll rows or exports from a bank or a CRM, and none of that leaves your machine here. Closing the tab leaves nothing behind.
Can I convert several files at once?
Yes. Drop or pick more than one file and each one is converted on its own, then handed back. You can download them one by one, or grab all of them together in a single zip. The files are never merged, so three CSV files give you three JSON files.
Which files can I upload?
Anything that is really a table of text: .csv, .tsv and .txt files, which covers almost every export you will meet. If a file is not text the tool tells you rather than handing back something broken.
How is the header row handled?
With First row is a header on, the first row is read as the column names and each later row becomes an object that uses those names as keys. Turn it off and each row becomes an array of values instead, which is handy when the file has no header at all.
Why are numbers text by default?
Because converting them can quietly destroy data. A postcode with a leading zero, a phone number, an order reference like 007 and a version like 1.10 all break the moment they are treated as numbers: leading zeros vanish and 1.10 becomes 1.1. Turn the option on only when you know your values are genuinely numeric.
How does it know the delimiter?
Auto-detect looks at the first row and picks the separator that splits it most cleanly, which is right almost every time. If your file is unusual you can set comma, semicolon, tab or pipe by hand so there is no guessing at all.
What about quoted fields and commas inside a value?
They are handled properly. A value wrapped in quotes can hold the delimiter, line breaks and quote marks of its own, and it is read as one field rather than split apart. Blank lines are skipped so a stray empty row does not become an empty object.
Can it convert JSON back to CSV?
Not on this page. Going the other way is a different job with its own choices to make, and a round trip that quietly reshapes your data is worse than none. This tool does one direction properly.
Is there a size limit?
Only what your own device can comfortably hold. Because the work happens in your browser rather than on a server, there is no upload limit and no queue. Very large files are limited by your available memory, not by us.
Is it free?
Yes. No sign-up, no watermark, and no account. It works the same on phones, tablets and computers in any modern browser.